{
    "summary": {
        "snap": {
            "added": [],
            "removed": [],
            "diff": []
        },
        "deb": {
            "added": [
                "linux-headers-5.15.0-1096-kvm",
                "linux-image-5.15.0-1096-kvm",
                "linux-kvm-headers-5.15.0-1096",
                "linux-modules-5.15.0-1096-kvm"
            ],
            "removed": [
                "linux-headers-5.15.0-1095-kvm",
                "linux-image-5.15.0-1095-kvm",
                "linux-kvm-headers-5.15.0-1095",
                "linux-modules-5.15.0-1095-kvm"
            ],
            "diff": [
                "coreutils",
                "libnss-systemd",
                "libpam-systemd",
                "libssl3",
                "libsystemd0",
                "libudev1",
                "linux-headers-kvm",
                "linux-image-kvm",
                "linux-kvm",
                "openssl",
                "pollinate",
                "python3-jwt",
                "python3-openssl",
                "snapd",
                "systemd",
                "systemd-sysv",
                "systemd-timesyncd",
                "tzdata",
                "udev",
                "xxd"
            ]
        }
    },
    "diff": {
        "deb": [
            {
                "name": "coreutils",
                "from_version": {
                    "source_package_name": "coreutils",
                    "source_package_version": "8.32-4.1ubuntu1.2",
                    "version": "8.32-4.1ubuntu1.2"
                },
                "to_version": {
                    "source_package_name": "coreutils",
                    "source_package_version": "8.32-4.1ubuntu1.3",
                    "version": "8.32-4.1ubuntu1.3"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2137373
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Fix slow performance of 'du' on large directories (>= 10K files)",
                            "    on Lustre filesystems by skipping inode sorting. The default",
                            "    behaviour of sorting dirents by inode numbers negatively impacts",
                            "    performance on Lustre because it interferes with Lustre's ability",
                            "    to prefetch file metadata via statahead. (LP: #2137373)",
                            "    - d/p/lp2137373-skip-dirent-inode-sorting-for-lustre.patch",
                            ""
                        ],
                        "package": "coreutils",
                        "version": "8.32-4.1ubuntu1.3",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2137373
                        ],
                        "author": "Munir Siddiqui <munir.siddiqui@canonical.com>",
                        "date": "Fri, 23 Jan 2026 15:51:17 +0500"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libnss-systemd",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpam-systemd",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libssl3",
                "from_version": {
                    "source_package_name": "openssl",
                    "source_package_version": "3.0.2-0ubuntu1.21",
                    "version": "3.0.2-0ubuntu1.21"
                },
                "to_version": {
                    "source_package_name": "openssl",
                    "source_package_version": "3.0.2-0ubuntu1.23",
                    "version": "3.0.2-0ubuntu1.23"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-28387",
                        "url": "https://ubuntu.com/security/CVE-2026-28387",
                        "cve_description": "Issue summary: An uncommon configuration of clients performing DANE TLSA-based server authentication, when paired with uncommon server DANE TLSA records, may result in a use-after-free and/or double-free on the client side.  Impact summary: A use after free can have a range of potential consequences such as the corruption of valid data, crashes or execution of arbitrary code.  However, the issue only affects clients that make use of TLSA records with both the PKIX-TA(0/PKIX-EE(1) certificate usages and the DANE-TA(2) certificate usage.  By far the most common deployment of DANE is in SMTP MTAs for which RFC7672 recommends that clients treat as 'unusable' any TLSA records that have the PKIX certificate usages.  These SMTP (or other similar) clients are not vulnerable to this issue.  Conversely, any clients that support only the PKIX usages, and ignore the DANE-TA(2) usage are also not vulnerable.  The client would also need to be communicating with a server that publishes a TLSA RRset with both types of TLSA records.  No FIPS modules are affected by this issue, the problem code is outside the FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28388",
                        "url": "https://ubuntu.com/security/CVE-2026-28388",
                        "cve_description": "Issue summary: When a delta CRL that contains a Delta CRL Indicator extension is processed a NULL pointer dereference might happen if the required CRL Number extension is missing.  Impact summary: A NULL pointer dereference can trigger a crash which leads to a Denial of Service for an application.  When CRL processing and delta CRL processing is enabled during X.509 certificate verification, the delta CRL processing does not check whether the CRL Number extension is NULL before dereferencing it. When a malformed delta CRL file is being processed, this parameter can be NULL, causing a NULL pointer dereference.  Exploiting this issue requires the X509_V_FLAG_USE_DELTAS flag to be enabled in the verification context, the certificate being verified to contain a freshestCRL extension or the base CRL to have the EXFLAG_FRESHEST flag set, and an attacker to provide a malformed CRL to an application that processes it.  The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. For that reason the issue was assessed as Low severity according to our Security Policy.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28389",
                        "url": "https://ubuntu.com/security/CVE-2026-28389",
                        "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyAgreeRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyAgreeRecipientInfo is processed, the optional parameters field of KeyEncryptionAlgorithmIdentifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28390",
                        "url": "https://ubuntu.com/security/CVE-2026-28390",
                        "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyTransportRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyTransportRecipientInfo with RSA-OAEP encryption is processed, the optional parameters field of RSA-OAEP SourceFunc algorithm identifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31789",
                        "url": "https://ubuntu.com/security/CVE-2026-31789",
                        "cve_description": "Issue summary: Converting an excessively large OCTET STRING value to a hexadecimal string leads to a heap buffer overflow on 32 bit platforms.  Impact summary: A heap buffer overflow may lead to a crash or possibly an attacker controlled code execution or other undefined behavior.  If an attacker can supply a crafted X.509 certificate with an excessively large OCTET STRING value in extensions such as the Subject Key Identifier (SKID) or Authority Key Identifier (AKID) which are being converted to hex, the size of the buffer needed for the result is calculated as multiplication of the input length by 3. On 32 bit platforms, this multiplication may overflow resulting in the allocation of a smaller buffer and a heap buffer overflow.  Applications and services that print or log contents of untrusted X.509 certificates are vulnerable to this issue. As the certificates would have to have sizes of over 1 Gigabyte, printing or logging such certificates is a fairly unlikely operation and only 32 bit platforms are affected, this issue was assigned Low severity.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31790",
                        "url": "https://ubuntu.com/security/CVE-2026-31790",
                        "cve_description": "Issue summary: Applications using RSASVE key encapsulation to establish a secret encryption key can send contents of an uninitialized memory buffer to a malicious peer.  Impact summary: The uninitialized buffer might contain sensitive data from the previous execution of the application process which leads to sensitive data leakage to an attacker.  RSA_public_encrypt() returns the number of bytes written on success and -1 on error. The affected code tests only whether the return value is non-zero. As a result, if RSA encryption fails, encapsulation can still return success to the caller, set the output lengths, and leave the caller to use the contents of the ciphertext buffer as if a valid KEM ciphertext had been produced.  If applications use EVP_PKEY_encapsulate() with RSA/RSASVE on an attacker-supplied invalid RSA public key without first validating that key, then this may cause stale or uninitialized contents of the caller-provided ciphertext buffer to be disclosed to the attacker in place of the KEM ciphertext.  As a workaround calling EVP_PKEY_public_check() or EVP_PKEY_public_check_quick() before EVP_PKEY_encapsulate() will mitigate the issue.  The FIPS modules in 3.6, 3.5, 3.4, 3.3, 3.1 and 3.0 are affected by this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-28387",
                                "url": "https://ubuntu.com/security/CVE-2026-28387",
                                "cve_description": "Issue summary: An uncommon configuration of clients performing DANE TLSA-based server authentication, when paired with uncommon server DANE TLSA records, may result in a use-after-free and/or double-free on the client side.  Impact summary: A use after free can have a range of potential consequences such as the corruption of valid data, crashes or execution of arbitrary code.  However, the issue only affects clients that make use of TLSA records with both the PKIX-TA(0/PKIX-EE(1) certificate usages and the DANE-TA(2) certificate usage.  By far the most common deployment of DANE is in SMTP MTAs for which RFC7672 recommends that clients treat as 'unusable' any TLSA records that have the PKIX certificate usages.  These SMTP (or other similar) clients are not vulnerable to this issue.  Conversely, any clients that support only the PKIX usages, and ignore the DANE-TA(2) usage are also not vulnerable.  The client would also need to be communicating with a server that publishes a TLSA RRset with both types of TLSA records.  No FIPS modules are affected by this issue, the problem code is outside the FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28388",
                                "url": "https://ubuntu.com/security/CVE-2026-28388",
                                "cve_description": "Issue summary: When a delta CRL that contains a Delta CRL Indicator extension is processed a NULL pointer dereference might happen if the required CRL Number extension is missing.  Impact summary: A NULL pointer dereference can trigger a crash which leads to a Denial of Service for an application.  When CRL processing and delta CRL processing is enabled during X.509 certificate verification, the delta CRL processing does not check whether the CRL Number extension is NULL before dereferencing it. When a malformed delta CRL file is being processed, this parameter can be NULL, causing a NULL pointer dereference.  Exploiting this issue requires the X509_V_FLAG_USE_DELTAS flag to be enabled in the verification context, the certificate being verified to contain a freshestCRL extension or the base CRL to have the EXFLAG_FRESHEST flag set, and an attacker to provide a malformed CRL to an application that processes it.  The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. For that reason the issue was assessed as Low severity according to our Security Policy.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28389",
                                "url": "https://ubuntu.com/security/CVE-2026-28389",
                                "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyAgreeRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyAgreeRecipientInfo is processed, the optional parameters field of KeyEncryptionAlgorithmIdentifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28390",
                                "url": "https://ubuntu.com/security/CVE-2026-28390",
                                "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyTransportRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyTransportRecipientInfo with RSA-OAEP encryption is processed, the optional parameters field of RSA-OAEP SourceFunc algorithm identifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31789",
                                "url": "https://ubuntu.com/security/CVE-2026-31789",
                                "cve_description": "Issue summary: Converting an excessively large OCTET STRING value to a hexadecimal string leads to a heap buffer overflow on 32 bit platforms.  Impact summary: A heap buffer overflow may lead to a crash or possibly an attacker controlled code execution or other undefined behavior.  If an attacker can supply a crafted X.509 certificate with an excessively large OCTET STRING value in extensions such as the Subject Key Identifier (SKID) or Authority Key Identifier (AKID) which are being converted to hex, the size of the buffer needed for the result is calculated as multiplication of the input length by 3. On 32 bit platforms, this multiplication may overflow resulting in the allocation of a smaller buffer and a heap buffer overflow.  Applications and services that print or log contents of untrusted X.509 certificates are vulnerable to this issue. As the certificates would have to have sizes of over 1 Gigabyte, printing or logging such certificates is a fairly unlikely operation and only 32 bit platforms are affected, this issue was assigned Low severity.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31790",
                                "url": "https://ubuntu.com/security/CVE-2026-31790",
                                "cve_description": "Issue summary: Applications using RSASVE key encapsulation to establish a secret encryption key can send contents of an uninitialized memory buffer to a malicious peer.  Impact summary: The uninitialized buffer might contain sensitive data from the previous execution of the application process which leads to sensitive data leakage to an attacker.  RSA_public_encrypt() returns the number of bytes written on success and -1 on error. The affected code tests only whether the return value is non-zero. As a result, if RSA encryption fails, encapsulation can still return success to the caller, set the output lengths, and leave the caller to use the contents of the ciphertext buffer as if a valid KEM ciphertext had been produced.  If applications use EVP_PKEY_encapsulate() with RSA/RSASVE on an attacker-supplied invalid RSA public key without first validating that key, then this may cause stale or uninitialized contents of the caller-provided ciphertext buffer to be disclosed to the attacker in place of the KEM ciphertext.  As a workaround calling EVP_PKEY_public_check() or EVP_PKEY_public_check_quick() before EVP_PKEY_encapsulate() will mitigate the issue.  The FIPS modules in 3.6, 3.5, 3.4, 3.3, 3.1 and 3.0 are affected by this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: NULL pointer dereference when processing an OCSP",
                            "    response",
                            "    - debian/patches/CVE-2026-28387.patch: dane_match_cert() should",
                            "      X509_free() on ->mcert instead of OPENSSL_free() in",
                            "      crypto/x509/x509_vfy.c.",
                            "    - CVE-2026-28387",
                            "  * SECURITY UPDATE: NULL Pointer Dereference When Processing a Delta CRL",
                            "    - debian/patches/CVE-2026-28388-1.patch: fix NULL Dereference When",
                            "      Delta CRL Lacks CRL Number Extension in crypto/x509/x509_vfy.c.",
                            "    - debian/patches/CVE-2026-28388-2.patch: Added test in test/*.",
                            "    - CVE-2026-28388",
                            "  * SECURITY UPDATE: Possible NULL dereference when processing CMS",
                            "    KeyAgreeRecipientInfo",
                            "    - debian/patches/CVE-2026-28389.patch: Fix NULL deref in",
                            "      [ec]dh_cms_set_shared_info in crypto/cms/cms_dh.c,",
                            "      crypto/cms/cms_ec.c.",
                            "    - CVE-2026-28389",
                            "  * SECURITY UPDATE: Possible NULL Dereference When Processing CMS",
                            "    KeyTransportRecipientInfo",
                            "    - debian/patches/CVE-2026-28390.patch: Fix NULL deref in",
                            "      rsa_cms_decrypt in crypto/cms/cms_rsa.c.",
                            "    - CVE-2026-28390",
                            "  * SECURITY UPDATE: Heap buffer overflow in hexadecimal conversion",
                            "    - debian/patches/CVE-2026-31789.patch: avoid possible buffer overflow",
                            "      in buf2hex conversion in crypto/o_str.c.",
                            "    - CVE-2026-31789",
                            "  * SECURITY UPDATE: Incorrect failure handling in RSA KEM RSASVE",
                            "    encapsulation",
                            "    - debian/patches/CVE-2026-31790-1.patch: validate RSA_public_encrypt()",
                            "      result in RSASVE in providers/implementations/kem/rsa_kem.c.",
                            "    - debian/patches/CVE-2026-31790-2.patch: test RSA_public_encrypt()",
                            "      result in RSASVE in test/evp_extra_test.c.",
                            "    - CVE-2026-31790",
                            ""
                        ],
                        "package": "openssl",
                        "version": "3.0.2-0ubuntu1.23",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Tue, 07 Apr 2026 08:05:56 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libsystemd0",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libudev1",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-headers-kvm",
                "from_version": {
                    "source_package_name": "linux-meta-kvm",
                    "source_package_version": "5.15.0.1095.91",
                    "version": "5.15.0.1095.91"
                },
                "to_version": {
                    "source_package_name": "linux-meta-kvm",
                    "source_package_version": "5.15.0.1096.92",
                    "version": "5.15.0.1096.92"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.15.0-1096",
                            ""
                        ],
                        "package": "linux-meta-kvm",
                        "version": "5.15.0.1096.92",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Stewart Hore <stewart.hore@canonical.com>",
                        "date": "Tue, 24 Mar 2026 12:33:03 +1100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-image-kvm",
                "from_version": {
                    "source_package_name": "linux-meta-kvm",
                    "source_package_version": "5.15.0.1095.91",
                    "version": "5.15.0.1095.91"
                },
                "to_version": {
                    "source_package_name": "linux-meta-kvm",
                    "source_package_version": "5.15.0.1096.92",
                    "version": "5.15.0.1096.92"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.15.0-1096",
                            ""
                        ],
                        "package": "linux-meta-kvm",
                        "version": "5.15.0.1096.92",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Stewart Hore <stewart.hore@canonical.com>",
                        "date": "Tue, 24 Mar 2026 12:33:03 +1100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-kvm",
                "from_version": {
                    "source_package_name": "linux-meta-kvm",
                    "source_package_version": "5.15.0.1095.91",
                    "version": "5.15.0.1095.91"
                },
                "to_version": {
                    "source_package_name": "linux-meta-kvm",
                    "source_package_version": "5.15.0.1096.92",
                    "version": "5.15.0.1096.92"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.15.0-1096",
                            ""
                        ],
                        "package": "linux-meta-kvm",
                        "version": "5.15.0.1096.92",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Stewart Hore <stewart.hore@canonical.com>",
                        "date": "Tue, 24 Mar 2026 12:33:03 +1100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "openssl",
                "from_version": {
                    "source_package_name": "openssl",
                    "source_package_version": "3.0.2-0ubuntu1.21",
                    "version": "3.0.2-0ubuntu1.21"
                },
                "to_version": {
                    "source_package_name": "openssl",
                    "source_package_version": "3.0.2-0ubuntu1.23",
                    "version": "3.0.2-0ubuntu1.23"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-28387",
                        "url": "https://ubuntu.com/security/CVE-2026-28387",
                        "cve_description": "Issue summary: An uncommon configuration of clients performing DANE TLSA-based server authentication, when paired with uncommon server DANE TLSA records, may result in a use-after-free and/or double-free on the client side.  Impact summary: A use after free can have a range of potential consequences such as the corruption of valid data, crashes or execution of arbitrary code.  However, the issue only affects clients that make use of TLSA records with both the PKIX-TA(0/PKIX-EE(1) certificate usages and the DANE-TA(2) certificate usage.  By far the most common deployment of DANE is in SMTP MTAs for which RFC7672 recommends that clients treat as 'unusable' any TLSA records that have the PKIX certificate usages.  These SMTP (or other similar) clients are not vulnerable to this issue.  Conversely, any clients that support only the PKIX usages, and ignore the DANE-TA(2) usage are also not vulnerable.  The client would also need to be communicating with a server that publishes a TLSA RRset with both types of TLSA records.  No FIPS modules are affected by this issue, the problem code is outside the FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28388",
                        "url": "https://ubuntu.com/security/CVE-2026-28388",
                        "cve_description": "Issue summary: When a delta CRL that contains a Delta CRL Indicator extension is processed a NULL pointer dereference might happen if the required CRL Number extension is missing.  Impact summary: A NULL pointer dereference can trigger a crash which leads to a Denial of Service for an application.  When CRL processing and delta CRL processing is enabled during X.509 certificate verification, the delta CRL processing does not check whether the CRL Number extension is NULL before dereferencing it. When a malformed delta CRL file is being processed, this parameter can be NULL, causing a NULL pointer dereference.  Exploiting this issue requires the X509_V_FLAG_USE_DELTAS flag to be enabled in the verification context, the certificate being verified to contain a freshestCRL extension or the base CRL to have the EXFLAG_FRESHEST flag set, and an attacker to provide a malformed CRL to an application that processes it.  The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. For that reason the issue was assessed as Low severity according to our Security Policy.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28389",
                        "url": "https://ubuntu.com/security/CVE-2026-28389",
                        "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyAgreeRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyAgreeRecipientInfo is processed, the optional parameters field of KeyEncryptionAlgorithmIdentifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28390",
                        "url": "https://ubuntu.com/security/CVE-2026-28390",
                        "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyTransportRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyTransportRecipientInfo with RSA-OAEP encryption is processed, the optional parameters field of RSA-OAEP SourceFunc algorithm identifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31789",
                        "url": "https://ubuntu.com/security/CVE-2026-31789",
                        "cve_description": "Issue summary: Converting an excessively large OCTET STRING value to a hexadecimal string leads to a heap buffer overflow on 32 bit platforms.  Impact summary: A heap buffer overflow may lead to a crash or possibly an attacker controlled code execution or other undefined behavior.  If an attacker can supply a crafted X.509 certificate with an excessively large OCTET STRING value in extensions such as the Subject Key Identifier (SKID) or Authority Key Identifier (AKID) which are being converted to hex, the size of the buffer needed for the result is calculated as multiplication of the input length by 3. On 32 bit platforms, this multiplication may overflow resulting in the allocation of a smaller buffer and a heap buffer overflow.  Applications and services that print or log contents of untrusted X.509 certificates are vulnerable to this issue. As the certificates would have to have sizes of over 1 Gigabyte, printing or logging such certificates is a fairly unlikely operation and only 32 bit platforms are affected, this issue was assigned Low severity.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-31790",
                        "url": "https://ubuntu.com/security/CVE-2026-31790",
                        "cve_description": "Issue summary: Applications using RSASVE key encapsulation to establish a secret encryption key can send contents of an uninitialized memory buffer to a malicious peer.  Impact summary: The uninitialized buffer might contain sensitive data from the previous execution of the application process which leads to sensitive data leakage to an attacker.  RSA_public_encrypt() returns the number of bytes written on success and -1 on error. The affected code tests only whether the return value is non-zero. As a result, if RSA encryption fails, encapsulation can still return success to the caller, set the output lengths, and leave the caller to use the contents of the ciphertext buffer as if a valid KEM ciphertext had been produced.  If applications use EVP_PKEY_encapsulate() with RSA/RSASVE on an attacker-supplied invalid RSA public key without first validating that key, then this may cause stale or uninitialized contents of the caller-provided ciphertext buffer to be disclosed to the attacker in place of the KEM ciphertext.  As a workaround calling EVP_PKEY_public_check() or EVP_PKEY_public_check_quick() before EVP_PKEY_encapsulate() will mitigate the issue.  The FIPS modules in 3.6, 3.5, 3.4, 3.3, 3.1 and 3.0 are affected by this issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-04-07 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-28387",
                                "url": "https://ubuntu.com/security/CVE-2026-28387",
                                "cve_description": "Issue summary: An uncommon configuration of clients performing DANE TLSA-based server authentication, when paired with uncommon server DANE TLSA records, may result in a use-after-free and/or double-free on the client side.  Impact summary: A use after free can have a range of potential consequences such as the corruption of valid data, crashes or execution of arbitrary code.  However, the issue only affects clients that make use of TLSA records with both the PKIX-TA(0/PKIX-EE(1) certificate usages and the DANE-TA(2) certificate usage.  By far the most common deployment of DANE is in SMTP MTAs for which RFC7672 recommends that clients treat as 'unusable' any TLSA records that have the PKIX certificate usages.  These SMTP (or other similar) clients are not vulnerable to this issue.  Conversely, any clients that support only the PKIX usages, and ignore the DANE-TA(2) usage are also not vulnerable.  The client would also need to be communicating with a server that publishes a TLSA RRset with both types of TLSA records.  No FIPS modules are affected by this issue, the problem code is outside the FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28388",
                                "url": "https://ubuntu.com/security/CVE-2026-28388",
                                "cve_description": "Issue summary: When a delta CRL that contains a Delta CRL Indicator extension is processed a NULL pointer dereference might happen if the required CRL Number extension is missing.  Impact summary: A NULL pointer dereference can trigger a crash which leads to a Denial of Service for an application.  When CRL processing and delta CRL processing is enabled during X.509 certificate verification, the delta CRL processing does not check whether the CRL Number extension is NULL before dereferencing it. When a malformed delta CRL file is being processed, this parameter can be NULL, causing a NULL pointer dereference.  Exploiting this issue requires the X509_V_FLAG_USE_DELTAS flag to be enabled in the verification context, the certificate being verified to contain a freshestCRL extension or the base CRL to have the EXFLAG_FRESHEST flag set, and an attacker to provide a malformed CRL to an application that processes it.  The vulnerability is limited to Denial of Service and cannot be escalated to achieve code execution or memory disclosure. For that reason the issue was assessed as Low severity according to our Security Policy.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28389",
                                "url": "https://ubuntu.com/security/CVE-2026-28389",
                                "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyAgreeRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyAgreeRecipientInfo is processed, the optional parameters field of KeyEncryptionAlgorithmIdentifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28390",
                                "url": "https://ubuntu.com/security/CVE-2026-28390",
                                "cve_description": "Issue summary: During processing of a crafted CMS EnvelopedData message with KeyTransportRecipientInfo a NULL pointer dereference can happen.  Impact summary: Applications that process attacker-controlled CMS data may crash before authentication or cryptographic operations occur resulting in Denial of Service.  When a CMS EnvelopedData message that uses KeyTransportRecipientInfo with RSA-OAEP encryption is processed, the optional parameters field of RSA-OAEP SourceFunc algorithm identifier is examined without checking for its presence. This results in a NULL pointer dereference if the field is missing.  Applications and services that call CMS_decrypt() on untrusted input (e.g., S/MIME processing or CMS-based protocols) are vulnerable.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31789",
                                "url": "https://ubuntu.com/security/CVE-2026-31789",
                                "cve_description": "Issue summary: Converting an excessively large OCTET STRING value to a hexadecimal string leads to a heap buffer overflow on 32 bit platforms.  Impact summary: A heap buffer overflow may lead to a crash or possibly an attacker controlled code execution or other undefined behavior.  If an attacker can supply a crafted X.509 certificate with an excessively large OCTET STRING value in extensions such as the Subject Key Identifier (SKID) or Authority Key Identifier (AKID) which are being converted to hex, the size of the buffer needed for the result is calculated as multiplication of the input length by 3. On 32 bit platforms, this multiplication may overflow resulting in the allocation of a smaller buffer and a heap buffer overflow.  Applications and services that print or log contents of untrusted X.509 certificates are vulnerable to this issue. As the certificates would have to have sizes of over 1 Gigabyte, printing or logging such certificates is a fairly unlikely operation and only 32 bit platforms are affected, this issue was assigned Low severity.  The FIPS modules in 3.6, 3.5, 3.4, 3.3 and 3.0 are not affected by this issue, as the affected code is outside the OpenSSL FIPS module boundary.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-31790",
                                "url": "https://ubuntu.com/security/CVE-2026-31790",
                                "cve_description": "Issue summary: Applications using RSASVE key encapsulation to establish a secret encryption key can send contents of an uninitialized memory buffer to a malicious peer.  Impact summary: The uninitialized buffer might contain sensitive data from the previous execution of the application process which leads to sensitive data leakage to an attacker.  RSA_public_encrypt() returns the number of bytes written on success and -1 on error. The affected code tests only whether the return value is non-zero. As a result, if RSA encryption fails, encapsulation can still return success to the caller, set the output lengths, and leave the caller to use the contents of the ciphertext buffer as if a valid KEM ciphertext had been produced.  If applications use EVP_PKEY_encapsulate() with RSA/RSASVE on an attacker-supplied invalid RSA public key without first validating that key, then this may cause stale or uninitialized contents of the caller-provided ciphertext buffer to be disclosed to the attacker in place of the KEM ciphertext.  As a workaround calling EVP_PKEY_public_check() or EVP_PKEY_public_check_quick() before EVP_PKEY_encapsulate() will mitigate the issue.  The FIPS modules in 3.6, 3.5, 3.4, 3.3, 3.1 and 3.0 are affected by this issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-04-07 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: NULL pointer dereference when processing an OCSP",
                            "    response",
                            "    - debian/patches/CVE-2026-28387.patch: dane_match_cert() should",
                            "      X509_free() on ->mcert instead of OPENSSL_free() in",
                            "      crypto/x509/x509_vfy.c.",
                            "    - CVE-2026-28387",
                            "  * SECURITY UPDATE: NULL Pointer Dereference When Processing a Delta CRL",
                            "    - debian/patches/CVE-2026-28388-1.patch: fix NULL Dereference When",
                            "      Delta CRL Lacks CRL Number Extension in crypto/x509/x509_vfy.c.",
                            "    - debian/patches/CVE-2026-28388-2.patch: Added test in test/*.",
                            "    - CVE-2026-28388",
                            "  * SECURITY UPDATE: Possible NULL dereference when processing CMS",
                            "    KeyAgreeRecipientInfo",
                            "    - debian/patches/CVE-2026-28389.patch: Fix NULL deref in",
                            "      [ec]dh_cms_set_shared_info in crypto/cms/cms_dh.c,",
                            "      crypto/cms/cms_ec.c.",
                            "    - CVE-2026-28389",
                            "  * SECURITY UPDATE: Possible NULL Dereference When Processing CMS",
                            "    KeyTransportRecipientInfo",
                            "    - debian/patches/CVE-2026-28390.patch: Fix NULL deref in",
                            "      rsa_cms_decrypt in crypto/cms/cms_rsa.c.",
                            "    - CVE-2026-28390",
                            "  * SECURITY UPDATE: Heap buffer overflow in hexadecimal conversion",
                            "    - debian/patches/CVE-2026-31789.patch: avoid possible buffer overflow",
                            "      in buf2hex conversion in crypto/o_str.c.",
                            "    - CVE-2026-31789",
                            "  * SECURITY UPDATE: Incorrect failure handling in RSA KEM RSASVE",
                            "    encapsulation",
                            "    - debian/patches/CVE-2026-31790-1.patch: validate RSA_public_encrypt()",
                            "      result in RSASVE in providers/implementations/kem/rsa_kem.c.",
                            "    - debian/patches/CVE-2026-31790-2.patch: test RSA_public_encrypt()",
                            "      result in RSASVE in test/evp_extra_test.c.",
                            "    - CVE-2026-31790",
                            ""
                        ],
                        "package": "openssl",
                        "version": "3.0.2-0ubuntu1.23",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Tue, 07 Apr 2026 08:05:56 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "pollinate",
                "from_version": {
                    "source_package_name": "pollinate",
                    "source_package_version": "4.33-3ubuntu2.1",
                    "version": "4.33-3ubuntu2.1"
                },
                "to_version": {
                    "source_package_name": "pollinate",
                    "source_package_version": "4.33-3ubuntu2.3",
                    "version": "4.33-3ubuntu2.3"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2146451
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Remove certificate pinning (LP: #2146451)",
                            "    - Curl will now use the system ca-certificates to validate the server",
                            "      cert which will allow a graceful transition during the upcoming",
                            "      certificate renewal and prevent machines from booting without",
                            "      seeded entropy.",
                            ""
                        ],
                        "package": "pollinate",
                        "version": "4.33-3ubuntu2.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [
                            2146451
                        ],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 26 Mar 2026 08:25:57 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3-jwt",
                "from_version": {
                    "source_package_name": "pyjwt",
                    "source_package_version": "2.3.0-1ubuntu0.2",
                    "version": "2.3.0-1ubuntu0.2"
                },
                "to_version": {
                    "source_package_name": "pyjwt",
                    "source_package_version": "2.3.0-1ubuntu0.3",
                    "version": "2.3.0-1ubuntu0.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-32597",
                        "url": "https://ubuntu.com/security/CVE-2026-32597",
                        "cve_description": "PyJWT is a JSON Web Token implementation in Python. Prior to 2.12.0, PyJWT does not validate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. When a JWS token contains a crit array listing extensions that PyJWT does not understand, the library accepts the token instead of rejecting it. This violates the MUST requirement in the RFC. This vulnerability is fixed in 2.12.0.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-13 19:55:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-32597",
                                "url": "https://ubuntu.com/security/CVE-2026-32597",
                                "cve_description": "PyJWT is a JSON Web Token implementation in Python. Prior to 2.12.0, PyJWT does not validate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. When a JWS token contains a crit array listing extensions that PyJWT does not understand, the library accepts the token instead of rejecting it. This violates the MUST requirement in the RFC. This vulnerability is fixed in 2.12.0.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-13 19:55:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Incorrect authorization of invalid JWS token.",
                            "    - debian/patches/CVE-2026-32597.patch: Add _supported_crit and checks",
                            "      for valid crit header in jwt/api_jws.py. Add tests in",
                            "      tests/test_api_jws.py and tests/test_api_jwt.py.",
                            "    - CVE-2026-32597",
                            ""
                        ],
                        "package": "pyjwt",
                        "version": "2.3.0-1ubuntu0.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Hlib Korzhynskyy <hlib.korzhynskyy@canonical.com>",
                        "date": "Thu, 26 Mar 2026 14:58:14 -0230"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3-openssl",
                "from_version": {
                    "source_package_name": "pyopenssl",
                    "source_package_version": "21.0.0-1",
                    "version": "21.0.0-1"
                },
                "to_version": {
                    "source_package_name": "pyopenssl",
                    "source_package_version": "21.0.0-1ubuntu0.1",
                    "version": "21.0.0-1ubuntu0.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-27448",
                        "url": "https://ubuntu.com/security/CVE-2026-27448",
                        "cve_description": "pyOpenSSL is a Python wrapper around the OpenSSL library. Starting in version 0.14.0 and prior to version 26.0.0, if a user provided callback to `set_tlsext_servername_callback` raised an unhandled exception, this would result in a connection being accepted. If a user was relying on this callback for any security-sensitive behavior, this could allow bypassing it. Starting in version 26.0.0, unhandled exceptions now result in rejecting the connection.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-03-18 00:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-27448",
                                "url": "https://ubuntu.com/security/CVE-2026-27448",
                                "cve_description": "pyOpenSSL is a Python wrapper around the OpenSSL library. Starting in version 0.14.0 and prior to version 26.0.0, if a user provided callback to `set_tlsext_servername_callback` raised an unhandled exception, this would result in a connection being accepted. If a user was relying on this callback for any security-sensitive behavior, this could allow bypassing it. Starting in version 26.0.0, unhandled exceptions now result in rejecting the connection.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-03-18 00:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Unhandled exceptions in set_tlsext_servername_callback",
                            "    - debian/patches/CVE-2026-27448.patch: handle exceptions in callbacks",
                            "      in src/OpenSSL/SSL.py, tests/test_ssl.py.",
                            "    - CVE-2026-27448",
                            ""
                        ],
                        "package": "pyopenssl",
                        "version": "21.0.0-1ubuntu0.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Wed, 18 Mar 2026 14:11:32 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "snapd",
                "from_version": {
                    "source_package_name": "snapd",
                    "source_package_version": "2.73+ubuntu22.04",
                    "version": "2.73+ubuntu22.04"
                },
                "to_version": {
                    "source_package_name": "snapd",
                    "source_package_version": "2.73+ubuntu22.04.1",
                    "version": "2.73+ubuntu22.04.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-3888",
                        "url": "https://ubuntu.com/security/CVE-2026-3888",
                        "cve_description": "Local privilege escalation in snapd on Linux allows local attackers to get root privilege by re-creating snap's private /tmp directory when systemd-tmpfiles is configured to automatically clean up this directory. This issue affects Ubuntu 16.04 LTS, 18.04 LTS, 20.04 LTS, 22.04 LTS, and 24.04 LTS.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-03-17 14:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-3888",
                                "url": "https://ubuntu.com/security/CVE-2026-3888",
                                "cve_description": "Local privilege escalation in snapd on Linux allows local attackers to get root privilege by re-creating snap's private /tmp directory when systemd-tmpfiles is configured to automatically clean up this directory. This issue affects Ubuntu 16.04 LTS, 18.04 LTS, 20.04 LTS, 22.04 LTS, and 24.04 LTS.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-03-17 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local privilege escalation",
                            "    - debian/patches/CVE-2026-3888.patch: more precise prune pattern for",
                            "      tmpfiles.",
                            "    - CVE-2026-3888",
                            ""
                        ],
                        "package": "snapd",
                        "version": "2.73+ubuntu22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Eduardo Barretto <eduardo.barretto@canonical.com>",
                        "date": "Thu, 12 Mar 2026 12:30:27 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "systemd",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "systemd-sysv",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "systemd-timesyncd",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "tzdata",
                "from_version": {
                    "source_package_name": "tzdata",
                    "source_package_version": "2025b-0ubuntu0.22.04.1",
                    "version": "2025b-0ubuntu0.22.04.1"
                },
                "to_version": {
                    "source_package_name": "tzdata",
                    "source_package_version": "2026a-0ubuntu0.22.04.1",
                    "version": "2026a-0ubuntu0.22.04.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2143355
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * New upstream release (LP: #2143355):",
                            "    - No leap second on 2026-06-30",
                            "    - Moldova has used EU transition times since 2022",
                            "  * Add autopkgtest test case for 2025c and 2026a release",
                            "  * Update the ICU timezone data to 2026a",
                            "  * Add autopkgtest test case for ICU timezone data 2026a",
                            ""
                        ],
                        "package": "tzdata",
                        "version": "2026a-0ubuntu0.22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2143355
                        ],
                        "author": "Nadzeya Hutsko <nadzeya.hutsko@canonical.com>",
                        "date": "Thu, 19 Mar 2026 15:04:40 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "udev",
                "from_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.17",
                    "version": "249.11-0ubuntu3.17"
                },
                "to_version": {
                    "source_package_name": "systemd",
                    "source_package_version": "249.11-0ubuntu3.20",
                    "version": "249.11-0ubuntu3.20"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-29111",
                        "url": "https://ubuntu.com/security/CVE-2026-29111",
                        "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-23 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2134334,
                    2133220
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * net_id: depending on new udev prop, include/exclude PCI domain from netif names",
                            "    (LP: #2134334)",
                            "  * network: support ID_NET_MANAGED_BY udev property",
                            "    (LP: #2133220)",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.20",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2134334,
                            2133220
                        ],
                        "author": "Robert Malz <robert.malz@canonical.com>",
                        "date": "Tue, 24 Mar 2026 09:52:29 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-29111",
                                "url": "https://ubuntu.com/security/CVE-2026-29111",
                                "cve_description": "systemd, a system and service manager, (as PID 1) hits an assert and freezes execution when an unprivileged IPC API call is made with spurious data. On version v249 and older the effect is not an assert, but stack overwriting, with the attacker controlled content. From version v250 and newer this is not possible as the safety check causes an assert instead. This IPC call was added in v239, so versions older than that are not affected. Versions 260-rc1, 259.2, 258.5, and 257.11 contain patches. No known workarounds are available.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-23 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local unprivileged user can overwrite stack in systemd",
                            "    - d/p/CVE-2026-29111-1.patch: path-util: backport path_startswith_full",
                            "    - d/p/CVE-2026-29111-2.patch: core/cgroup: avoid one unnecessary strjoina()",
                            "    - d/p/CVE-2026-29111-3.patch: core: validate input cgroup path more prudently",
                            "  * SECURITY UPDATE: Local root execution via malicious hardware devices",
                            "    - d/p/udev-check-for-invalid-chars-in-various-fields-received-f.patch",
                            "    - d/p/udev-fix-review-mixup.patch",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "systemd",
                        "version": "249.11-0ubuntu3.19",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Nick Rosbrook <enr0n@ubuntu.com>",
                        "date": "Fri, 13 Mar 2026 12:47:41 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "xxd",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.24",
                    "version": "2:8.2.3995-1ubuntu2.24"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.26",
                    "version": "2:8.2.3995-1ubuntu2.26"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-26269",
                        "url": "https://ubuntu.com/security/CVE-2026-26269",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.1.2148, a stack buffer overflow vulnerability exists in Vim's NetBeans integration when processing the specialKeys command, affecting Vim builds that enable and use the NetBeans feature. The Stack buffer overflow exists in special_keys() (in src/netbeans.c). The while (*tok) loop writes two bytes per iteration into a 64-byte stack buffer (keybuf) with no bounds check. A malicious NetBeans server can overflow keybuf with a single specialKeys command. The issue has been fixed as of Vim patch v9.1.2148.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-02-13 20:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28420",
                        "url": "https://ubuntu.com/security/CVE-2026-28420",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0076, a heap-based buffer overflow WRITE and an out-of-bounds READ exist in Vim's terminal emulator when processing maximum combining characters from Unicode supplementary planes. Version 9.2.0076 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28422",
                        "url": "https://ubuntu.com/security/CVE-2026-28422",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0078, a stack-buffer-overflow occurs in `build_stl_str_hl()` when rendering a statusline with a multi-byte fill character on a very wide terminal. Version 9.2.0078 patches the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-25749",
                        "url": "https://ubuntu.com/security/CVE-2026-25749",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.1.2132, a heap buffer overflow vulnerability exists in Vim's tag file resolution logic when processing the 'helpfile' option. The vulnerability is located in the get_tagfname() function in src/tag.c. When processing help file tags, Vim copies the user-controlled 'helpfile' option value into a fixed-size heap buffer of MAXPATHL + 1 bytes (typically 4097 bytes) using an unsafe STRCPY() operation without any bounds checking. This issue has been patched in version 9.1.2132.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-02-06 23:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28417",
                        "url": "https://ubuntu.com/security/CVE-2026-28417",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0073, an OS command injection vulnerability exists in the `netrw` standard plugin bundled with Vim. By inducing a user to open a crafted URL (e.g., using the `scp://` protocol handler), an attacker can execute arbitrary shell commands with the privileges of the Vim process. Version 9.2.0073 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28418",
                        "url": "https://ubuntu.com/security/CVE-2026-28418",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0074, a heap-based buffer overflow out-of-bounds read exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file, Vim can be tricked into reading up to 7 bytes beyond the allocated memory boundary. Version 9.2.0074 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28419",
                        "url": "https://ubuntu.com/security/CVE-2026-28419",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0075, a heap-based buffer underflow exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file where a delimiter appears at the start of a line, Vim attempts to read memory immediately preceding the allocated buffer. Version 9.2.0075 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28421",
                        "url": "https://ubuntu.com/security/CVE-2026-28421",
                        "cve_description": "Vim is an open source, command line text editor. Versions prior to 9.2.0077 have a heap-buffer-overflow and a segmentation fault (SEGV) exist in Vim's swap file recovery logic. Both are caused by unvalidated fields read from crafted pointer blocks within a swap file. Version 9.2.0077 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-26269",
                                "url": "https://ubuntu.com/security/CVE-2026-26269",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.1.2148, a stack buffer overflow vulnerability exists in Vim's NetBeans integration when processing the specialKeys command, affecting Vim builds that enable and use the NetBeans feature. The Stack buffer overflow exists in special_keys() (in src/netbeans.c). The while (*tok) loop writes two bytes per iteration into a 64-byte stack buffer (keybuf) with no bounds check. A malicious NetBeans server can overflow keybuf with a single specialKeys command. The issue has been fixed as of Vim patch v9.1.2148.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-02-13 20:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28420",
                                "url": "https://ubuntu.com/security/CVE-2026-28420",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0076, a heap-based buffer overflow WRITE and an out-of-bounds READ exist in Vim's terminal emulator when processing maximum combining characters from Unicode supplementary planes. Version 9.2.0076 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28422",
                                "url": "https://ubuntu.com/security/CVE-2026-28422",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0078, a stack-buffer-overflow occurs in `build_stl_str_hl()` when rendering a statusline with a multi-byte fill character on a very wide terminal. Version 9.2.0078 patches the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-25749",
                                "url": "https://ubuntu.com/security/CVE-2026-25749",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.1.2132, a heap buffer overflow vulnerability exists in Vim's tag file resolution logic when processing the 'helpfile' option. The vulnerability is located in the get_tagfname() function in src/tag.c. When processing help file tags, Vim copies the user-controlled 'helpfile' option value into a fixed-size heap buffer of MAXPATHL + 1 bytes (typically 4097 bytes) using an unsafe STRCPY() operation without any bounds checking. This issue has been patched in version 9.1.2132.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-02-06 23:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28417",
                                "url": "https://ubuntu.com/security/CVE-2026-28417",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0073, an OS command injection vulnerability exists in the `netrw` standard plugin bundled with Vim. By inducing a user to open a crafted URL (e.g., using the `scp://` protocol handler), an attacker can execute arbitrary shell commands with the privileges of the Vim process. Version 9.2.0073 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28418",
                                "url": "https://ubuntu.com/security/CVE-2026-28418",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0074, a heap-based buffer overflow out-of-bounds read exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file, Vim can be tricked into reading up to 7 bytes beyond the allocated memory boundary. Version 9.2.0074 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28419",
                                "url": "https://ubuntu.com/security/CVE-2026-28419",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0075, a heap-based buffer underflow exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file where a delimiter appears at the start of a line, Vim attempts to read memory immediately preceding the allocated buffer. Version 9.2.0075 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28421",
                                "url": "https://ubuntu.com/security/CVE-2026-28421",
                                "cve_description": "Vim is an open source, command line text editor. Versions prior to 9.2.0077 have a heap-buffer-overflow and a segmentation fault (SEGV) exist in Vim's swap file recovery logic. Both are caused by unvalidated fields read from crafted pointer blocks within a swap file. Version 9.2.0077 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Buffer Overflow",
                            "    - debian/patches/CVE-2026-26269.patch: Limit writing to max KEYBUFLEN",
                            "      bytes to prevent writing out of bounds.",
                            "    - debian/patches/CVE-2026-28420.patch: Use VTERM_MAX_CHARS_PER_CELL * 4",
                            "      for ga_grow() to ensure sufficient space. Add a boundary check to the",
                            "      character loop to prevent index out-of-bounds access.",
                            "    - debian/patches/CVE-2026-28422.patch: Update the size check to account",
                            "      for the byte length of the fill character (using MB_CHAR2LEN).",
                            "    - debian/patches/CVE-2026-25749.patch: Limit strncpy to the length",
                            "      of the buffer (MAXPATHL)",
                            "    - CVE-2026-26269",
                            "    - CVE-2026-28420",
                            "    - CVE-2026-28422",
                            "    - CVE-2026-25749",
                            "  * SECURITY UPDATE: Command Injection",
                            "    - debian/patches/CVE-2026-28417.patch: Implement stricter RFC1123",
                            "      hostname and IP validation. Use shellescape() for the provided",
                            "      hostname and port.",
                            "    - CVE-2026-28417",
                            "  * SECURITY UPDATE: Out of Bounds Read",
                            "    - debian/patches/CVE-2026-28418.patch: Check for end of buffer",
                            "      and return early.",
                            "    - CVE-2026-28418",
                            "  * SECURITY UPDATE: Buffer Underflow",
                            "    - debian/patches/CVE-2026-28419.patch: Add a check to ensure the",
                            "      delimiter (p_7f) is not at the start of the buffer (lbuf) before",
                            "      attempting to isolate the tag name.",
                            "    - CVE-2026-28419",
                            "  * SECURITY UPDATE: Denial of Service",
                            "    - debian/patches/CVE-2026-28421.patch: Add bounds checks on",
                            "      pe_page_count and pe_bnum against mf_blocknr_max before descending",
                            "      into the block tree, and validate pe_old_lnum >= 1 and",
                            "      pe_line_count > 0 before calling readfile().",
                            "    - CVE-2026-28421",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.26",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Bruce Cable <bruce.cable@canonical.com>",
                        "date": "Wed, 11 Mar 2026 10:44:44 +1100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            }
        ],
        "snap": []
    },
    "added": {
        "deb": [
            {
                "name": "linux-headers-5.15.0-1096-kvm",
                "from_version": {
                    "source_package_name": "linux-kvm",
                    "source_package_version": "5.15.0-1095.100",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux-kvm",
                    "source_package_version": "5.15.0-1096.101",
                    "version": "5.15.0-1096.101"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-23074",
                        "url": "https://ubuntu.com/security/CVE-2026-23074",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23060",
                        "url": "https://ubuntu.com/security/CVE-2026-23060",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23111",
                        "url": "https://ubuntu.com/security/CVE-2026-23111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-37849",
                        "url": "https://ubuntu.com/security/CVE-2025-37849",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: arm64: Tear down vGIC on failed vCPU creation  If kvm_arch_vcpu_create() fails to share the vCPU page with the hypervisor, we propagate the error back to the ioctl but leave the vGIC vCPU data initialised. Note only does this leak the corresponding memory when the vCPU is destroyed but it can also lead to use-after-free if the redistributor device handling tries to walk into the vCPU.  Add the missing cleanup to kvm_arch_vcpu_create(), ensuring that the vGIC vCPU structures are destroyed on error.",
                        "cve_priority": "high",
                        "cve_public_date": "2025-05-09 07:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2144203,
                    2144218
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23074",
                                "url": "https://ubuntu.com/security/CVE-2026-23074",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23060",
                                "url": "https://ubuntu.com/security/CVE-2026-23060",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23111",
                                "url": "https://ubuntu.com/security/CVE-2026-23111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-37849",
                                "url": "https://ubuntu.com/security/CVE-2025-37849",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: arm64: Tear down vGIC on failed vCPU creation  If kvm_arch_vcpu_create() fails to share the vCPU page with the hypervisor, we propagate the error back to the ioctl but leave the vGIC vCPU data initialised. Note only does this leak the corresponding memory when the vCPU is destroyed but it can also lead to use-after-free if the redistributor device handling tries to walk into the vCPU.  Add the missing cleanup to kvm_arch_vcpu_create(), ensuring that the vGIC vCPU structures are destroyed on error.",
                                "cve_priority": "high",
                                "cve_public_date": "2025-05-09 07:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-kvm: 5.15.0-1096.101 -proposed tracker (LP: #2144203)",
                            "",
                            "  [ Ubuntu: 5.15.0-174.184 ]",
                            "",
                            "  * jammy/linux: 5.15.0-174.184 -proposed tracker (LP: #2144218)",
                            "  * CVE-2026-23074",
                            "    - net/sched: Enforce that teql can only be used as root qdisc",
                            "  * CVE-2026-23060",
                            "    - crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN",
                            "      spec",
                            "  * CVE-2026-23111",
                            "    - netfilter: nf_tables: fix inverted genmask check in",
                            "      nft_map_catchall_activate()",
                            "  * CVE-2025-37849",
                            "    - KVM: arm64: vgic: Add a non-locking primitive for",
                            "      kvm_vgic_vcpu_destroy()",
                            "    - KVM: arm64: Tear down vGIC on failed vCPU creation",
                            ""
                        ],
                        "package": "linux-kvm",
                        "version": "5.15.0-1096.101",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2144203,
                            2144218
                        ],
                        "author": "Stewart Hore <stewart.hore@canonical.com>",
                        "date": "Tue, 24 Mar 2026 11:14:12 +1100"
                    }
                ],
                "notes": "linux-headers-5.15.0-1096-kvm version '5.15.0-1096.101' (source package linux-kvm version '5.15.0-1096.101') was added. linux-headers-5.15.0-1096-kvm version '5.15.0-1096.101' has the same source package name, linux-kvm, as removed package linux-headers-5.15.0-1095-kvm. As such we can use the source package version of the removed package, '5.15.0-1095.100', as the starting point in our changelog diff. Kernel packages are an example of where the binary package name changes for the same source package. Using the removed package source package version as our starting point means we can still get meaningful changelog diffs even for what appears to be a new package.",
                "is_version_downgrade": false
            },
            {
                "name": "linux-image-5.15.0-1096-kvm",
                "from_version": {
                    "source_package_name": "linux-signed-kvm",
                    "source_package_version": "5.15.0-1095.100",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux-signed-kvm",
                    "source_package_version": "5.15.0-1096.101",
                    "version": "5.15.0-1096.101"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    1786013
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Main version: 5.15.0-1096.101",
                            "",
                            "  * Packaging resync (LP: #1786013)",
                            "    - [Packaging] debian/tracking-bug -- resync from main package",
                            ""
                        ],
                        "package": "linux-signed-kvm",
                        "version": "5.15.0-1096.101",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            1786013
                        ],
                        "author": "Stewart Hore <stewart.hore@canonical.com>",
                        "date": "Tue, 24 Mar 2026 12:33:23 +1100"
                    }
                ],
                "notes": "linux-image-5.15.0-1096-kvm version '5.15.0-1096.101' (source package linux-signed-kvm version '5.15.0-1096.101') was added. linux-image-5.15.0-1096-kvm version '5.15.0-1096.101' has the same source package name, linux-signed-kvm, as removed package linux-image-5.15.0-1095-kvm. As such we can use the source package version of the removed package, '5.15.0-1095.100', as the starting point in our changelog diff. Kernel packages are an example of where the binary package name changes for the same source package. Using the removed package source package version as our starting point means we can still get meaningful changelog diffs even for what appears to be a new package.",
                "is_version_downgrade": false
            },
            {
                "name": "linux-kvm-headers-5.15.0-1096",
                "from_version": {
                    "source_package_name": "linux-kvm",
                    "source_package_version": "5.15.0-1095.100",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux-kvm",
                    "source_package_version": "5.15.0-1096.101",
                    "version": "5.15.0-1096.101"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-23074",
                        "url": "https://ubuntu.com/security/CVE-2026-23074",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23060",
                        "url": "https://ubuntu.com/security/CVE-2026-23060",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23111",
                        "url": "https://ubuntu.com/security/CVE-2026-23111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-37849",
                        "url": "https://ubuntu.com/security/CVE-2025-37849",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: arm64: Tear down vGIC on failed vCPU creation  If kvm_arch_vcpu_create() fails to share the vCPU page with the hypervisor, we propagate the error back to the ioctl but leave the vGIC vCPU data initialised. Note only does this leak the corresponding memory when the vCPU is destroyed but it can also lead to use-after-free if the redistributor device handling tries to walk into the vCPU.  Add the missing cleanup to kvm_arch_vcpu_create(), ensuring that the vGIC vCPU structures are destroyed on error.",
                        "cve_priority": "high",
                        "cve_public_date": "2025-05-09 07:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2144203,
                    2144218
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23074",
                                "url": "https://ubuntu.com/security/CVE-2026-23074",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23060",
                                "url": "https://ubuntu.com/security/CVE-2026-23060",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23111",
                                "url": "https://ubuntu.com/security/CVE-2026-23111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-37849",
                                "url": "https://ubuntu.com/security/CVE-2025-37849",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: arm64: Tear down vGIC on failed vCPU creation  If kvm_arch_vcpu_create() fails to share the vCPU page with the hypervisor, we propagate the error back to the ioctl but leave the vGIC vCPU data initialised. Note only does this leak the corresponding memory when the vCPU is destroyed but it can also lead to use-after-free if the redistributor device handling tries to walk into the vCPU.  Add the missing cleanup to kvm_arch_vcpu_create(), ensuring that the vGIC vCPU structures are destroyed on error.",
                                "cve_priority": "high",
                                "cve_public_date": "2025-05-09 07:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-kvm: 5.15.0-1096.101 -proposed tracker (LP: #2144203)",
                            "",
                            "  [ Ubuntu: 5.15.0-174.184 ]",
                            "",
                            "  * jammy/linux: 5.15.0-174.184 -proposed tracker (LP: #2144218)",
                            "  * CVE-2026-23074",
                            "    - net/sched: Enforce that teql can only be used as root qdisc",
                            "  * CVE-2026-23060",
                            "    - crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN",
                            "      spec",
                            "  * CVE-2026-23111",
                            "    - netfilter: nf_tables: fix inverted genmask check in",
                            "      nft_map_catchall_activate()",
                            "  * CVE-2025-37849",
                            "    - KVM: arm64: vgic: Add a non-locking primitive for",
                            "      kvm_vgic_vcpu_destroy()",
                            "    - KVM: arm64: Tear down vGIC on failed vCPU creation",
                            ""
                        ],
                        "package": "linux-kvm",
                        "version": "5.15.0-1096.101",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2144203,
                            2144218
                        ],
                        "author": "Stewart Hore <stewart.hore@canonical.com>",
                        "date": "Tue, 24 Mar 2026 11:14:12 +1100"
                    }
                ],
                "notes": "linux-kvm-headers-5.15.0-1096 version '5.15.0-1096.101' (source package linux-kvm version '5.15.0-1096.101') was added. linux-kvm-headers-5.15.0-1096 version '5.15.0-1096.101' has the same source package name, linux-kvm, as removed package linux-headers-5.15.0-1095-kvm. As such we can use the source package version of the removed package, '5.15.0-1095.100', as the starting point in our changelog diff. Kernel packages are an example of where the binary package name changes for the same source package. Using the removed package source package version as our starting point means we can still get meaningful changelog diffs even for what appears to be a new package.",
                "is_version_downgrade": false
            },
            {
                "name": "linux-modules-5.15.0-1096-kvm",
                "from_version": {
                    "source_package_name": "linux-kvm",
                    "source_package_version": "5.15.0-1095.100",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux-kvm",
                    "source_package_version": "5.15.0-1096.101",
                    "version": "5.15.0-1096.101"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-23074",
                        "url": "https://ubuntu.com/security/CVE-2026-23074",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23060",
                        "url": "https://ubuntu.com/security/CVE-2026-23060",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-04 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23111",
                        "url": "https://ubuntu.com/security/CVE-2026-23111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-02-13 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-37849",
                        "url": "https://ubuntu.com/security/CVE-2025-37849",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: arm64: Tear down vGIC on failed vCPU creation  If kvm_arch_vcpu_create() fails to share the vCPU page with the hypervisor, we propagate the error back to the ioctl but leave the vGIC vCPU data initialised. Note only does this leak the corresponding memory when the vCPU is destroyed but it can also lead to use-after-free if the redistributor device handling tries to walk into the vCPU.  Add the missing cleanup to kvm_arch_vcpu_create(), ensuring that the vGIC vCPU structures are destroyed on error.",
                        "cve_priority": "high",
                        "cve_public_date": "2025-05-09 07:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2144203,
                    2144218
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-23074",
                                "url": "https://ubuntu.com/security/CVE-2026-23074",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: Enforce that teql can only be used as root qdisc  Design intent of teql is that it is only supposed to be used as root qdisc. We need to check for that constraint.  Although not important, I will describe the scenario that unearthed this issue for the curious.  GangMin Kim <km.kim1503@gmail.com> managed to concot a scenario as follows:  ROOT qdisc 1:0 (QFQ)   ├── class 1:1 (weight=15, lmax=16384) netem with delay 6.4s   └── class 1:2 (weight=1, lmax=1514) teql  GangMin sends a packet which is enqueued to 1:1 (netem). Any invocation of dequeue by QFQ from this class will not return a packet until after 6.4s. In the meantime, a second packet is sent and it lands on 1:2. teql's enqueue will return success and this will activate class 1:2. Main issue is that teql only updates the parent visible qlen (sch->q.qlen) at dequeue. Since QFQ will only call dequeue if peek succeeds (and teql's peek always returns NULL), dequeue will never be called and thus the qlen will remain as 0. With that in mind, when GangMin updates 1:2's lmax value, the qfq_change_class calls qfq_deact_rm_from_agg. Since the child qdisc's qlen was not incremented, qfq fails to deactivate the class, but still frees its pointers from the aggregate. So when the first packet is rescheduled after 6.4 seconds (netem's delay), a dangling pointer is accessed causing GangMin's causing a UAF.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23060",
                                "url": "https://ubuntu.com/security/CVE-2026-23060",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN spec  authencesn assumes an ESP/ESN-formatted AAD. When assoclen is shorter than the minimum expected length, crypto_authenc_esn_decrypt() can advance past the end of the destination scatterlist and trigger a NULL pointer dereference in scatterwalk_map_and_copy(), leading to a kernel panic (DoS).  Add a minimum AAD length check to fail fast on invalid inputs.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-04 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23111",
                                "url": "https://ubuntu.com/security/CVE-2026-23111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()  nft_map_catchall_activate() has an inverted element activity check compared to its non-catchall counterpart nft_mapelem_activate() and compared to what is logically required.  nft_map_catchall_activate() is called from the abort path to re-activate catchall map elements that were deactivated during a failed transaction. It should skip elements that are already active (they don't need re-activation) and process elements that are inactive (they need to be restored). Instead, the current code does the opposite: it skips inactive elements and processes active ones.  Compare the non-catchall activate callback, which is correct:    nft_mapelem_activate():     if (nft_set_elem_active(ext, iter->genmask))         return 0;   /* skip active, process inactive */  With the buggy catchall version:    nft_map_catchall_activate():     if (!nft_set_elem_active(ext, genmask))         continue;   /* skip inactive, process active */  The consequence is that when a DELSET operation is aborted, nft_setelem_data_activate() is never called for the catchall element. For NFT_GOTO verdict elements, this means nft_data_hold() is never called to restore the chain->use reference count. Each abort cycle permanently decrements chain->use. Once chain->use reaches zero, DELCHAIN succeeds and frees the chain while catchall verdict elements still reference it, resulting in a use-after-free.  This is exploitable for local privilege escalation from an unprivileged user via user namespaces + nftables on distributions that enable CONFIG_USER_NS and CONFIG_NF_TABLES.  Fix by removing the negation so the check matches nft_mapelem_activate(): skip active elements, process inactive ones.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-02-13 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-37849",
                                "url": "https://ubuntu.com/security/CVE-2025-37849",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: arm64: Tear down vGIC on failed vCPU creation  If kvm_arch_vcpu_create() fails to share the vCPU page with the hypervisor, we propagate the error back to the ioctl but leave the vGIC vCPU data initialised. Note only does this leak the corresponding memory when the vCPU is destroyed but it can also lead to use-after-free if the redistributor device handling tries to walk into the vCPU.  Add the missing cleanup to kvm_arch_vcpu_create(), ensuring that the vGIC vCPU structures are destroyed on error.",
                                "cve_priority": "high",
                                "cve_public_date": "2025-05-09 07:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux-kvm: 5.15.0-1096.101 -proposed tracker (LP: #2144203)",
                            "",
                            "  [ Ubuntu: 5.15.0-174.184 ]",
                            "",
                            "  * jammy/linux: 5.15.0-174.184 -proposed tracker (LP: #2144218)",
                            "  * CVE-2026-23074",
                            "    - net/sched: Enforce that teql can only be used as root qdisc",
                            "  * CVE-2026-23060",
                            "    - crypto: authencesn - reject too-short AAD (assoclen<8) to match ESP/ESN",
                            "      spec",
                            "  * CVE-2026-23111",
                            "    - netfilter: nf_tables: fix inverted genmask check in",
                            "      nft_map_catchall_activate()",
                            "  * CVE-2025-37849",
                            "    - KVM: arm64: vgic: Add a non-locking primitive for",
                            "      kvm_vgic_vcpu_destroy()",
                            "    - KVM: arm64: Tear down vGIC on failed vCPU creation",
                            ""
                        ],
                        "package": "linux-kvm",
                        "version": "5.15.0-1096.101",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2144203,
                            2144218
                        ],
                        "author": "Stewart Hore <stewart.hore@canonical.com>",
                        "date": "Tue, 24 Mar 2026 11:14:12 +1100"
                    }
                ],
                "notes": "linux-modules-5.15.0-1096-kvm version '5.15.0-1096.101' (source package linux-kvm version '5.15.0-1096.101') was added. linux-modules-5.15.0-1096-kvm version '5.15.0-1096.101' has the same source package name, linux-kvm, as removed package linux-headers-5.15.0-1095-kvm. As such we can use the source package version of the removed package, '5.15.0-1095.100', as the starting point in our changelog diff. Kernel packages are an example of where the binary package name changes for the same source package. Using the removed package source package version as our starting point means we can still get meaningful changelog diffs even for what appears to be a new package.",
                "is_version_downgrade": false
            }
        ],
        "snap": []
    },
    "removed": {
        "deb": [
            {
                "name": "linux-headers-5.15.0-1095-kvm",
                "from_version": {
                    "source_package_name": "linux-kvm",
                    "source_package_version": "5.15.0-1095.100",
                    "version": "5.15.0-1095.100"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-image-5.15.0-1095-kvm",
                "from_version": {
                    "source_package_name": "linux-signed-kvm",
                    "source_package_version": "5.15.0-1095.100",
                    "version": "5.15.0-1095.100"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-kvm-headers-5.15.0-1095",
                "from_version": {
                    "source_package_name": "linux-kvm",
                    "source_package_version": "5.15.0-1095.100",
                    "version": "5.15.0-1095.100"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-modules-5.15.0-1095-kvm",
                "from_version": {
                    "source_package_name": "linux-kvm",
                    "source_package_version": "5.15.0-1095.100",
                    "version": "5.15.0-1095.100"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            }
        ],
        "snap": []
    },
    "notes": "Changelog diff for Ubuntu 22.04 jammy image from release image serial 20260313 to 20260408",
    "from_series": "jammy",
    "to_series": "jammy",
    "from_serial": "20260313",
    "to_serial": "20260408",
    "from_manifest_filename": "release_manifest.previous",
    "to_manifest_filename": "manifest.current"
}