{
    "summary": {
        "snap": {
            "added": [],
            "removed": [],
            "diff": [
                "core20"
            ]
        },
        "deb": {
            "added": [
                "linux-headers-5.4.0-214",
                "linux-headers-5.4.0-214-generic",
                "linux-image-5.4.0-214-generic",
                "linux-modules-5.4.0-214-generic"
            ],
            "removed": [
                "linux-headers-5.4.0-212",
                "linux-headers-5.4.0-212-generic",
                "linux-image-5.4.0-212-generic",
                "linux-modules-5.4.0-212-generic"
            ],
            "diff": [
                "dirmngr",
                "gnupg",
                "gnupg-l10n",
                "gnupg-utils",
                "gpg",
                "gpg-agent",
                "gpg-wks-client",
                "gpg-wks-server",
                "gpgconf",
                "gpgsm",
                "gpgv",
                "libarchive13:s390x",
                "libsoup2.4-1:s390x",
                "libxml2:s390x",
                "linux-headers-generic",
                "linux-headers-virtual",
                "linux-image-virtual",
                "linux-virtual",
                "openssh-client",
                "openssh-server",
                "openssh-sftp-server",
                "vim",
                "vim-common",
                "vim-runtime",
                "vim-tiny",
                "xxd"
            ]
        }
    },
    "diff": {
        "deb": [
            {
                "name": "dirmngr",
                "from_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.2",
                    "version": "2.2.19-3ubuntu2.2"
                },
                "to_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.4",
                    "version": "2.2.19-3ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-30258",
                        "url": "https://ubuntu.com/security/CVE-2025-30258",
                        "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-03-19 20:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-30258",
                                "url": "https://ubuntu.com/security/CVE-2025-30258",
                                "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-03-19 20:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: verification DoS via crafted subkey data",
                            "    - debian/patches/CVE-2025-30258-1.patch: lookup key for merging/",
                            "      inserting only by primary key in g10/getkey.c, g10/import.c,",
                            "      g10/keydb.h.",
                            "    - debian/patches/CVE-2025-30258-2.patch: remove a signature check",
                            "      function wrapper in g10/mainproc.c, g10/packet.h, g10/sig-check.c.",
                            "    - debian/patches/CVE-2025-30258-3.patch: fix a verification DoS due to",
                            "      a malicious subkey in the keyring in g10/getkey.c, g10/keydb.h,",
                            "      g10/mainproc.c, g10/packet.h, g10/sig-check.c, g10/pkclist.c.",
                            "    - debian/patches/CVE-2025-30258-4.patch: fix regression for the recent",
                            "      malicious subkey DoS fix in g10/getkey.c, g10/packet.h.",
                            "    - debian/patches/CVE-2025-30258-5.patch: fix double free of internal",
                            "      data in g10/sig-check.c.",
                            "    - CVE-2025-30258",
                            ""
                        ],
                        "package": "gnupg2",
                        "version": "2.2.19-3ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Sat, 29 Mar 2025 12:35:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "gnupg",
                "from_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.2",
                    "version": "2.2.19-3ubuntu2.2"
                },
                "to_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.4",
                    "version": "2.2.19-3ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-30258",
                        "url": "https://ubuntu.com/security/CVE-2025-30258",
                        "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-03-19 20:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-30258",
                                "url": "https://ubuntu.com/security/CVE-2025-30258",
                                "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-03-19 20:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: verification DoS via crafted subkey data",
                            "    - debian/patches/CVE-2025-30258-1.patch: lookup key for merging/",
                            "      inserting only by primary key in g10/getkey.c, g10/import.c,",
                            "      g10/keydb.h.",
                            "    - debian/patches/CVE-2025-30258-2.patch: remove a signature check",
                            "      function wrapper in g10/mainproc.c, g10/packet.h, g10/sig-check.c.",
                            "    - debian/patches/CVE-2025-30258-3.patch: fix a verification DoS due to",
                            "      a malicious subkey in the keyring in g10/getkey.c, g10/keydb.h,",
                            "      g10/mainproc.c, g10/packet.h, g10/sig-check.c, g10/pkclist.c.",
                            "    - debian/patches/CVE-2025-30258-4.patch: fix regression for the recent",
                            "      malicious subkey DoS fix in g10/getkey.c, g10/packet.h.",
                            "    - debian/patches/CVE-2025-30258-5.patch: fix double free of internal",
                            "      data in g10/sig-check.c.",
                            "    - CVE-2025-30258",
                            ""
                        ],
                        "package": "gnupg2",
                        "version": "2.2.19-3ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Sat, 29 Mar 2025 12:35:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "gnupg-l10n",
                "from_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.2",
                    "version": "2.2.19-3ubuntu2.2"
                },
                "to_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.4",
                    "version": "2.2.19-3ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-30258",
                        "url": "https://ubuntu.com/security/CVE-2025-30258",
                        "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-03-19 20:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-30258",
                                "url": "https://ubuntu.com/security/CVE-2025-30258",
                                "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-03-19 20:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: verification DoS via crafted subkey data",
                            "    - debian/patches/CVE-2025-30258-1.patch: lookup key for merging/",
                            "      inserting only by primary key in g10/getkey.c, g10/import.c,",
                            "      g10/keydb.h.",
                            "    - debian/patches/CVE-2025-30258-2.patch: remove a signature check",
                            "      function wrapper in g10/mainproc.c, g10/packet.h, g10/sig-check.c.",
                            "    - debian/patches/CVE-2025-30258-3.patch: fix a verification DoS due to",
                            "      a malicious subkey in the keyring in g10/getkey.c, g10/keydb.h,",
                            "      g10/mainproc.c, g10/packet.h, g10/sig-check.c, g10/pkclist.c.",
                            "    - debian/patches/CVE-2025-30258-4.patch: fix regression for the recent",
                            "      malicious subkey DoS fix in g10/getkey.c, g10/packet.h.",
                            "    - debian/patches/CVE-2025-30258-5.patch: fix double free of internal",
                            "      data in g10/sig-check.c.",
                            "    - CVE-2025-30258",
                            ""
                        ],
                        "package": "gnupg2",
                        "version": "2.2.19-3ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Sat, 29 Mar 2025 12:35:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "gnupg-utils",
                "from_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.2",
                    "version": "2.2.19-3ubuntu2.2"
                },
                "to_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.4",
                    "version": "2.2.19-3ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-30258",
                        "url": "https://ubuntu.com/security/CVE-2025-30258",
                        "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-03-19 20:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-30258",
                                "url": "https://ubuntu.com/security/CVE-2025-30258",
                                "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-03-19 20:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: verification DoS via crafted subkey data",
                            "    - debian/patches/CVE-2025-30258-1.patch: lookup key for merging/",
                            "      inserting only by primary key in g10/getkey.c, g10/import.c,",
                            "      g10/keydb.h.",
                            "    - debian/patches/CVE-2025-30258-2.patch: remove a signature check",
                            "      function wrapper in g10/mainproc.c, g10/packet.h, g10/sig-check.c.",
                            "    - debian/patches/CVE-2025-30258-3.patch: fix a verification DoS due to",
                            "      a malicious subkey in the keyring in g10/getkey.c, g10/keydb.h,",
                            "      g10/mainproc.c, g10/packet.h, g10/sig-check.c, g10/pkclist.c.",
                            "    - debian/patches/CVE-2025-30258-4.patch: fix regression for the recent",
                            "      malicious subkey DoS fix in g10/getkey.c, g10/packet.h.",
                            "    - debian/patches/CVE-2025-30258-5.patch: fix double free of internal",
                            "      data in g10/sig-check.c.",
                            "    - CVE-2025-30258",
                            ""
                        ],
                        "package": "gnupg2",
                        "version": "2.2.19-3ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Sat, 29 Mar 2025 12:35:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "gpg",
                "from_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.2",
                    "version": "2.2.19-3ubuntu2.2"
                },
                "to_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.4",
                    "version": "2.2.19-3ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-30258",
                        "url": "https://ubuntu.com/security/CVE-2025-30258",
                        "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-03-19 20:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-30258",
                                "url": "https://ubuntu.com/security/CVE-2025-30258",
                                "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-03-19 20:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: verification DoS via crafted subkey data",
                            "    - debian/patches/CVE-2025-30258-1.patch: lookup key for merging/",
                            "      inserting only by primary key in g10/getkey.c, g10/import.c,",
                            "      g10/keydb.h.",
                            "    - debian/patches/CVE-2025-30258-2.patch: remove a signature check",
                            "      function wrapper in g10/mainproc.c, g10/packet.h, g10/sig-check.c.",
                            "    - debian/patches/CVE-2025-30258-3.patch: fix a verification DoS due to",
                            "      a malicious subkey in the keyring in g10/getkey.c, g10/keydb.h,",
                            "      g10/mainproc.c, g10/packet.h, g10/sig-check.c, g10/pkclist.c.",
                            "    - debian/patches/CVE-2025-30258-4.patch: fix regression for the recent",
                            "      malicious subkey DoS fix in g10/getkey.c, g10/packet.h.",
                            "    - debian/patches/CVE-2025-30258-5.patch: fix double free of internal",
                            "      data in g10/sig-check.c.",
                            "    - CVE-2025-30258",
                            ""
                        ],
                        "package": "gnupg2",
                        "version": "2.2.19-3ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Sat, 29 Mar 2025 12:35:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "gpg-agent",
                "from_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.2",
                    "version": "2.2.19-3ubuntu2.2"
                },
                "to_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.4",
                    "version": "2.2.19-3ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-30258",
                        "url": "https://ubuntu.com/security/CVE-2025-30258",
                        "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-03-19 20:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-30258",
                                "url": "https://ubuntu.com/security/CVE-2025-30258",
                                "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-03-19 20:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: verification DoS via crafted subkey data",
                            "    - debian/patches/CVE-2025-30258-1.patch: lookup key for merging/",
                            "      inserting only by primary key in g10/getkey.c, g10/import.c,",
                            "      g10/keydb.h.",
                            "    - debian/patches/CVE-2025-30258-2.patch: remove a signature check",
                            "      function wrapper in g10/mainproc.c, g10/packet.h, g10/sig-check.c.",
                            "    - debian/patches/CVE-2025-30258-3.patch: fix a verification DoS due to",
                            "      a malicious subkey in the keyring in g10/getkey.c, g10/keydb.h,",
                            "      g10/mainproc.c, g10/packet.h, g10/sig-check.c, g10/pkclist.c.",
                            "    - debian/patches/CVE-2025-30258-4.patch: fix regression for the recent",
                            "      malicious subkey DoS fix in g10/getkey.c, g10/packet.h.",
                            "    - debian/patches/CVE-2025-30258-5.patch: fix double free of internal",
                            "      data in g10/sig-check.c.",
                            "    - CVE-2025-30258",
                            ""
                        ],
                        "package": "gnupg2",
                        "version": "2.2.19-3ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Sat, 29 Mar 2025 12:35:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "gpg-wks-client",
                "from_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.2",
                    "version": "2.2.19-3ubuntu2.2"
                },
                "to_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.4",
                    "version": "2.2.19-3ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-30258",
                        "url": "https://ubuntu.com/security/CVE-2025-30258",
                        "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-03-19 20:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-30258",
                                "url": "https://ubuntu.com/security/CVE-2025-30258",
                                "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-03-19 20:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: verification DoS via crafted subkey data",
                            "    - debian/patches/CVE-2025-30258-1.patch: lookup key for merging/",
                            "      inserting only by primary key in g10/getkey.c, g10/import.c,",
                            "      g10/keydb.h.",
                            "    - debian/patches/CVE-2025-30258-2.patch: remove a signature check",
                            "      function wrapper in g10/mainproc.c, g10/packet.h, g10/sig-check.c.",
                            "    - debian/patches/CVE-2025-30258-3.patch: fix a verification DoS due to",
                            "      a malicious subkey in the keyring in g10/getkey.c, g10/keydb.h,",
                            "      g10/mainproc.c, g10/packet.h, g10/sig-check.c, g10/pkclist.c.",
                            "    - debian/patches/CVE-2025-30258-4.patch: fix regression for the recent",
                            "      malicious subkey DoS fix in g10/getkey.c, g10/packet.h.",
                            "    - debian/patches/CVE-2025-30258-5.patch: fix double free of internal",
                            "      data in g10/sig-check.c.",
                            "    - CVE-2025-30258",
                            ""
                        ],
                        "package": "gnupg2",
                        "version": "2.2.19-3ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Sat, 29 Mar 2025 12:35:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "gpg-wks-server",
                "from_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.2",
                    "version": "2.2.19-3ubuntu2.2"
                },
                "to_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.4",
                    "version": "2.2.19-3ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-30258",
                        "url": "https://ubuntu.com/security/CVE-2025-30258",
                        "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-03-19 20:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-30258",
                                "url": "https://ubuntu.com/security/CVE-2025-30258",
                                "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-03-19 20:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: verification DoS via crafted subkey data",
                            "    - debian/patches/CVE-2025-30258-1.patch: lookup key for merging/",
                            "      inserting only by primary key in g10/getkey.c, g10/import.c,",
                            "      g10/keydb.h.",
                            "    - debian/patches/CVE-2025-30258-2.patch: remove a signature check",
                            "      function wrapper in g10/mainproc.c, g10/packet.h, g10/sig-check.c.",
                            "    - debian/patches/CVE-2025-30258-3.patch: fix a verification DoS due to",
                            "      a malicious subkey in the keyring in g10/getkey.c, g10/keydb.h,",
                            "      g10/mainproc.c, g10/packet.h, g10/sig-check.c, g10/pkclist.c.",
                            "    - debian/patches/CVE-2025-30258-4.patch: fix regression for the recent",
                            "      malicious subkey DoS fix in g10/getkey.c, g10/packet.h.",
                            "    - debian/patches/CVE-2025-30258-5.patch: fix double free of internal",
                            "      data in g10/sig-check.c.",
                            "    - CVE-2025-30258",
                            ""
                        ],
                        "package": "gnupg2",
                        "version": "2.2.19-3ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Sat, 29 Mar 2025 12:35:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "gpgconf",
                "from_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.2",
                    "version": "2.2.19-3ubuntu2.2"
                },
                "to_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.4",
                    "version": "2.2.19-3ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-30258",
                        "url": "https://ubuntu.com/security/CVE-2025-30258",
                        "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-03-19 20:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-30258",
                                "url": "https://ubuntu.com/security/CVE-2025-30258",
                                "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-03-19 20:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: verification DoS via crafted subkey data",
                            "    - debian/patches/CVE-2025-30258-1.patch: lookup key for merging/",
                            "      inserting only by primary key in g10/getkey.c, g10/import.c,",
                            "      g10/keydb.h.",
                            "    - debian/patches/CVE-2025-30258-2.patch: remove a signature check",
                            "      function wrapper in g10/mainproc.c, g10/packet.h, g10/sig-check.c.",
                            "    - debian/patches/CVE-2025-30258-3.patch: fix a verification DoS due to",
                            "      a malicious subkey in the keyring in g10/getkey.c, g10/keydb.h,",
                            "      g10/mainproc.c, g10/packet.h, g10/sig-check.c, g10/pkclist.c.",
                            "    - debian/patches/CVE-2025-30258-4.patch: fix regression for the recent",
                            "      malicious subkey DoS fix in g10/getkey.c, g10/packet.h.",
                            "    - debian/patches/CVE-2025-30258-5.patch: fix double free of internal",
                            "      data in g10/sig-check.c.",
                            "    - CVE-2025-30258",
                            ""
                        ],
                        "package": "gnupg2",
                        "version": "2.2.19-3ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Sat, 29 Mar 2025 12:35:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "gpgsm",
                "from_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.2",
                    "version": "2.2.19-3ubuntu2.2"
                },
                "to_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.4",
                    "version": "2.2.19-3ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-30258",
                        "url": "https://ubuntu.com/security/CVE-2025-30258",
                        "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-03-19 20:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-30258",
                                "url": "https://ubuntu.com/security/CVE-2025-30258",
                                "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-03-19 20:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: verification DoS via crafted subkey data",
                            "    - debian/patches/CVE-2025-30258-1.patch: lookup key for merging/",
                            "      inserting only by primary key in g10/getkey.c, g10/import.c,",
                            "      g10/keydb.h.",
                            "    - debian/patches/CVE-2025-30258-2.patch: remove a signature check",
                            "      function wrapper in g10/mainproc.c, g10/packet.h, g10/sig-check.c.",
                            "    - debian/patches/CVE-2025-30258-3.patch: fix a verification DoS due to",
                            "      a malicious subkey in the keyring in g10/getkey.c, g10/keydb.h,",
                            "      g10/mainproc.c, g10/packet.h, g10/sig-check.c, g10/pkclist.c.",
                            "    - debian/patches/CVE-2025-30258-4.patch: fix regression for the recent",
                            "      malicious subkey DoS fix in g10/getkey.c, g10/packet.h.",
                            "    - debian/patches/CVE-2025-30258-5.patch: fix double free of internal",
                            "      data in g10/sig-check.c.",
                            "    - CVE-2025-30258",
                            ""
                        ],
                        "package": "gnupg2",
                        "version": "2.2.19-3ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Sat, 29 Mar 2025 12:35:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "gpgv",
                "from_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.2",
                    "version": "2.2.19-3ubuntu2.2"
                },
                "to_version": {
                    "source_package_name": "gnupg2",
                    "source_package_version": "2.2.19-3ubuntu2.4",
                    "version": "2.2.19-3ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-30258",
                        "url": "https://ubuntu.com/security/CVE-2025-30258",
                        "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-03-19 20:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-30258",
                                "url": "https://ubuntu.com/security/CVE-2025-30258",
                                "cve_description": "In GnuPG before 2.5.5, if a user chooses to import a certificate with certain crafted subkey data that lacks a valid backsig or that has incorrect usage flags, the user loses the ability to verify signatures made from certain other signing keys, aka a \"verification DoS.\"",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-03-19 20:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: verification DoS via crafted subkey data",
                            "    - debian/patches/CVE-2025-30258-1.patch: lookup key for merging/",
                            "      inserting only by primary key in g10/getkey.c, g10/import.c,",
                            "      g10/keydb.h.",
                            "    - debian/patches/CVE-2025-30258-2.patch: remove a signature check",
                            "      function wrapper in g10/mainproc.c, g10/packet.h, g10/sig-check.c.",
                            "    - debian/patches/CVE-2025-30258-3.patch: fix a verification DoS due to",
                            "      a malicious subkey in the keyring in g10/getkey.c, g10/keydb.h,",
                            "      g10/mainproc.c, g10/packet.h, g10/sig-check.c, g10/pkclist.c.",
                            "    - debian/patches/CVE-2025-30258-4.patch: fix regression for the recent",
                            "      malicious subkey DoS fix in g10/getkey.c, g10/packet.h.",
                            "    - debian/patches/CVE-2025-30258-5.patch: fix double free of internal",
                            "      data in g10/sig-check.c.",
                            "    - CVE-2025-30258",
                            ""
                        ],
                        "package": "gnupg2",
                        "version": "2.2.19-3ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Sat, 29 Mar 2025 12:35:54 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libarchive13:s390x",
                "from_version": {
                    "source_package_name": "libarchive",
                    "source_package_version": "3.4.0-2ubuntu1.4",
                    "version": "3.4.0-2ubuntu1.4"
                },
                "to_version": {
                    "source_package_name": "libarchive",
                    "source_package_version": "3.4.0-2ubuntu1.5",
                    "version": "3.4.0-2ubuntu1.5"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-25724",
                        "url": "https://ubuntu.com/security/CVE-2025-25724",
                        "cve_description": "list_item_verbose in tar/util.c in libarchive through 3.7.7 does not check an strftime return value, which can lead to a denial of service or unspecified other impact via a crafted TAR archive that is read with a verbose value of 2. For example, the 100-byte buffer may not be sufficient for a custom locale.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-03-02 02:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-25724",
                                "url": "https://ubuntu.com/security/CVE-2025-25724",
                                "cve_description": "list_item_verbose in tar/util.c in libarchive through 3.7.7 does not check an strftime return value, which can lead to a denial of service or unspecified other impact via a crafted TAR archive that is read with a verbose value of 2. For example, the 100-byte buffer may not be sufficient for a custom locale.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-03-02 02:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: DoS via crafted TAR archive",
                            "    - debian/patches/CVE-2025-25724.patch: make sure ltime is valid in",
                            "      tar/util.c.",
                            "    - CVE-2025-25724",
                            ""
                        ],
                        "package": "libarchive",
                        "version": "3.4.0-2ubuntu1.5",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 10 Apr 2025 13:38:38 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libsoup2.4-1:s390x",
                "from_version": {
                    "source_package_name": "libsoup2.4",
                    "source_package_version": "2.70.0-1ubuntu0.1",
                    "version": "2.70.0-1ubuntu0.1"
                },
                "to_version": {
                    "source_package_name": "libsoup2.4",
                    "source_package_version": "2.70.0-1ubuntu0.2",
                    "version": "2.70.0-1ubuntu0.2"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-2784",
                        "url": "https://ubuntu.com/security/CVE-2025-2784",
                        "cve_description": "A flaw was found in libsoup. The package is vulnerable to a heap buffer over-read when sniffing content via the skip_insight_whitespace() function. Libsoup clients may read one byte out-of-bounds in response to a crafted HTTP response by an HTTP server.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-03 03:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-32050",
                        "url": "https://ubuntu.com/security/CVE-2025-32050",
                        "cve_description": "A flaw was found in libsoup. The libsoup append_param_quoted() function may contain an overflow bug resulting in a buffer under-read.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-03 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-32052",
                        "url": "https://ubuntu.com/security/CVE-2025-32052",
                        "cve_description": "A flaw was found in libsoup. A vulnerability in the sniff_unknown() function may lead to heap buffer over-read.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-03 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-32053",
                        "url": "https://ubuntu.com/security/CVE-2025-32053",
                        "cve_description": "A flaw was found in libsoup. A vulnerability in sniff_feed_or_html() and skip_insignificant_space() functions may lead to a heap buffer over-read.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-03 14:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-2784",
                                "url": "https://ubuntu.com/security/CVE-2025-2784",
                                "cve_description": "A flaw was found in libsoup. The package is vulnerable to a heap buffer over-read when sniffing content via the skip_insight_whitespace() function. Libsoup clients may read one byte out-of-bounds in response to a crafted HTTP response by an HTTP server.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-03 03:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-32050",
                                "url": "https://ubuntu.com/security/CVE-2025-32050",
                                "cve_description": "A flaw was found in libsoup. The libsoup append_param_quoted() function may contain an overflow bug resulting in a buffer under-read.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-03 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-32052",
                                "url": "https://ubuntu.com/security/CVE-2025-32052",
                                "cve_description": "A flaw was found in libsoup. A vulnerability in the sniff_unknown() function may lead to heap buffer over-read.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-03 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-32053",
                                "url": "https://ubuntu.com/security/CVE-2025-32053",
                                "cve_description": "A flaw was found in libsoup. A vulnerability in sniff_feed_or_html() and skip_insignificant_space() functions may lead to a heap buffer over-read.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-03 14:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: out-of-bounds read",
                            "    - debian/patches/CVE-2025-2784-1.patch: Fix potential overflow",
                            "    - debian/patches/CVE-2025-2784-2.patch: Add better coverage of",
                            "      skip_insignificant_space()",
                            "    - CVE-2025-2784",
                            "  * SECURITY UPDATE: out-of-bounds read",
                            "    - debian/patches/CVE-2025-32050.patch: Fix using int instead of",
                            "      size_t for strcspn return",
                            "    - CVE-2025-32050",
                            "  * SECURITY UPDATE: out-of-bounds read",
                            "    - debian/patches/CVE-2025-32052.patch: Fix heap buffer overflow in",
                            "      soup_content_sniffer_sniff",
                            "    - CVE-2025-32052",
                            "  * SECURITY UPDATE: out-of-bounds read",
                            "    - debian/patches/CVE-2025-32053.patch: Fix heap buffer overflow in",
                            "      sniff_feed_or_html()",
                            "    - CVE-2025-32053",
                            ""
                        ],
                        "package": "libsoup2.4",
                        "version": "2.70.0-1ubuntu0.2",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Fabian Toepfer <fabian.toepfer@canonical.com>",
                        "date": "Wed, 09 Apr 2025 19:09:25 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libxml2:s390x",
                "from_version": {
                    "source_package_name": "libxml2",
                    "source_package_version": "2.9.10+dfsg-5ubuntu0.20.04.9",
                    "version": "2.9.10+dfsg-5ubuntu0.20.04.9"
                },
                "to_version": {
                    "source_package_name": "libxml2",
                    "source_package_version": "2.9.10+dfsg-5ubuntu0.20.04.10",
                    "version": "2.9.10+dfsg-5ubuntu0.20.04.10"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-32414",
                        "url": "https://ubuntu.com/security/CVE-2025-32414",
                        "cve_description": "In libxml2 before 2.13.8 and 2.14.x before 2.14.2, out-of-bounds memory access can occur in the Python API (Python bindings) because of an incorrect return value. This occurs in xmlPythonFileRead and xmlPythonFileReadRaw because of a difference between bytes and characters.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-08 03:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-32415",
                        "url": "https://ubuntu.com/security/CVE-2025-32415",
                        "cve_description": "In libxml2 before 2.13.8 and 2.14.x before 2.14.2, xmlSchemaIDCFillNodeTables in xmlschemas.c has a heap-based buffer under-read. To exploit this, a crafted XML document must be validated against an XML schema with certain identity constraints, or a crafted XML schema must be used.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-17 17:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-32414",
                                "url": "https://ubuntu.com/security/CVE-2025-32414",
                                "cve_description": "In libxml2 before 2.13.8 and 2.14.x before 2.14.2, out-of-bounds memory access can occur in the Python API (Python bindings) because of an incorrect return value. This occurs in xmlPythonFileRead and xmlPythonFileReadRaw because of a difference between bytes and characters.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-08 03:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-32415",
                                "url": "https://ubuntu.com/security/CVE-2025-32415",
                                "cve_description": "In libxml2 before 2.13.8 and 2.14.x before 2.14.2, xmlSchemaIDCFillNodeTables in xmlschemas.c has a heap-based buffer under-read. To exploit this, a crafted XML document must be validated against an XML schema with certain identity constraints, or a crafted XML schema must be used.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-17 17:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: OOB access in python API",
                            "    - debian/patches/CVE-2025-32414-pre1.patch: fix SAX driver with",
                            "      character streams in python/drv_libxml2.py.",
                            "    - debian/patches/CVE-2025-32414-1.patch: read at most len/4 characters",
                            "      in python/libxml.c.",
                            "    - debian/patches/CVE-2025-32414-2.patch: add a test in",
                            "      python/tests/Makefile.am, python/tests/unicode.py.",
                            "    - CVE-2025-32414",
                            "  * SECURITY UPDATE: heap under-read in xmlSchemaIDCFillNodeTables",
                            "    - debian/patches/CVE-2025-32415.patch: fix heap buffer overflow in",
                            "      xmlSchemaIDCFillNodeTables in xmlschemas.c.",
                            "    - CVE-2025-32415",
                            ""
                        ],
                        "package": "libxml2",
                        "version": "2.9.10+dfsg-5ubuntu0.20.04.10",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 24 Apr 2025 14:47:09 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-headers-generic",
                "from_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.4.0.212.207",
                    "version": "5.4.0.212.207"
                },
                "to_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.4.0.214.207",
                    "version": "5.4.0.214.207"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.4.0-212",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "5.4.0.212.207",
                        "urgency": "medium",
                        "distributions": "focal",
                        "launchpad_bugs_fixed": [],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Mar 2025 19:16:07 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": true
            },
            {
                "name": "linux-headers-virtual",
                "from_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.4.0.212.207",
                    "version": "5.4.0.212.207"
                },
                "to_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.4.0.214.207",
                    "version": "5.4.0.214.207"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.4.0-212",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "5.4.0.212.207",
                        "urgency": "medium",
                        "distributions": "focal",
                        "launchpad_bugs_fixed": [],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Mar 2025 19:16:07 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": true
            },
            {
                "name": "linux-image-virtual",
                "from_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.4.0.212.207",
                    "version": "5.4.0.212.207"
                },
                "to_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.4.0.214.207",
                    "version": "5.4.0.214.207"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.4.0-212",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "5.4.0.212.207",
                        "urgency": "medium",
                        "distributions": "focal",
                        "launchpad_bugs_fixed": [],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Mar 2025 19:16:07 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": true
            },
            {
                "name": "linux-virtual",
                "from_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.4.0.212.207",
                    "version": "5.4.0.212.207"
                },
                "to_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.4.0.214.207",
                    "version": "5.4.0.214.207"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.4.0-212",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "5.4.0.212.207",
                        "urgency": "medium",
                        "distributions": "focal",
                        "launchpad_bugs_fixed": [],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Mar 2025 19:16:07 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": true
            },
            {
                "name": "openssh-client",
                "from_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.2p1-4ubuntu0.12",
                    "version": "1:8.2p1-4ubuntu0.12"
                },
                "to_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.2p1-4ubuntu0.13",
                    "version": "1:8.2p1-4ubuntu0.13"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-32728",
                        "url": "https://ubuntu.com/security/CVE-2025-32728",
                        "cve_description": "In sshd in OpenSSH before 10.0, the DisableForwarding directive does not adhere to the documentation stating that it disables X11 and agent forwarding.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-10 02:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-32728",
                                "url": "https://ubuntu.com/security/CVE-2025-32728",
                                "cve_description": "In sshd in OpenSSH before 10.0, the DisableForwarding directive does not adhere to the documentation stating that it disables X11 and agent forwarding.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-10 02:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: incorrect DisableForwarding directive behaviour",
                            "    - debian/patches/CVE-2025-32728.patch: fix logic error in session.c.",
                            "    - CVE-2025-32728",
                            ""
                        ],
                        "package": "openssh",
                        "version": "1:8.2p1-4ubuntu0.13",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 11 Apr 2025 08:16:08 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "openssh-server",
                "from_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.2p1-4ubuntu0.12",
                    "version": "1:8.2p1-4ubuntu0.12"
                },
                "to_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.2p1-4ubuntu0.13",
                    "version": "1:8.2p1-4ubuntu0.13"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-32728",
                        "url": "https://ubuntu.com/security/CVE-2025-32728",
                        "cve_description": "In sshd in OpenSSH before 10.0, the DisableForwarding directive does not adhere to the documentation stating that it disables X11 and agent forwarding.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-10 02:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-32728",
                                "url": "https://ubuntu.com/security/CVE-2025-32728",
                                "cve_description": "In sshd in OpenSSH before 10.0, the DisableForwarding directive does not adhere to the documentation stating that it disables X11 and agent forwarding.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-10 02:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: incorrect DisableForwarding directive behaviour",
                            "    - debian/patches/CVE-2025-32728.patch: fix logic error in session.c.",
                            "    - CVE-2025-32728",
                            ""
                        ],
                        "package": "openssh",
                        "version": "1:8.2p1-4ubuntu0.13",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 11 Apr 2025 08:16:08 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "openssh-sftp-server",
                "from_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.2p1-4ubuntu0.12",
                    "version": "1:8.2p1-4ubuntu0.12"
                },
                "to_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.2p1-4ubuntu0.13",
                    "version": "1:8.2p1-4ubuntu0.13"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-32728",
                        "url": "https://ubuntu.com/security/CVE-2025-32728",
                        "cve_description": "In sshd in OpenSSH before 10.0, the DisableForwarding directive does not adhere to the documentation stating that it disables X11 and agent forwarding.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-10 02:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-32728",
                                "url": "https://ubuntu.com/security/CVE-2025-32728",
                                "cve_description": "In sshd in OpenSSH before 10.0, the DisableForwarding directive does not adhere to the documentation stating that it disables X11 and agent forwarding.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-10 02:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: incorrect DisableForwarding directive behaviour",
                            "    - debian/patches/CVE-2025-32728.patch: fix logic error in session.c.",
                            "    - CVE-2025-32728",
                            ""
                        ],
                        "package": "openssh",
                        "version": "1:8.2p1-4ubuntu0.13",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 11 Apr 2025 08:16:08 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "vim",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.1.2269-1ubuntu5.31",
                    "version": "2:8.1.2269-1ubuntu5.31"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.1.2269-1ubuntu5.32",
                    "version": "2:8.1.2269-1ubuntu5.32"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-26603",
                        "url": "https://ubuntu.com/security/CVE-2025-26603",
                        "cve_description": "Vim is a greatly improved version of the good old UNIX editor Vi. Vim allows to redirect screen messages using the `:redir` ex command to register, variables and files. It also allows to show the contents of registers using the `:registers` or `:display` ex command. When redirecting the output of `:display` to a register, Vim will free the register content before storing the new content in the register. Now when redirecting the `:display` command to a register that is being displayed, Vim will free the content while shortly afterwards trying to access it, which leads to a use-after-free. Vim pre 9.1.1115 checks in the ex_display() function, that it does not try to redirect to a register while displaying this register at the same time. However this check is not complete, and so Vim does not check the `+` and `*` registers (which typically donate the X11/clipboard registers, and when a clipboard connection is not possible will fall back to use register 0 instead. In Patch 9.1.1115 Vim will therefore skip outputting to register zero when trying to redirect to the clipboard registers `*` or `+`. Users are advised to upgrade. There are no known workarounds for this vulnerability.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-18 19:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-26603",
                                "url": "https://ubuntu.com/security/CVE-2025-26603",
                                "cve_description": "Vim is a greatly improved version of the good old UNIX editor Vi. Vim allows to redirect screen messages using the `:redir` ex command to register, variables and files. It also allows to show the contents of registers using the `:registers` or `:display` ex command. When redirecting the output of `:display` to a register, Vim will free the register content before storing the new content in the register. Now when redirecting the `:display` command to a register that is being displayed, Vim will free the content while shortly afterwards trying to access it, which leads to a use-after-free. Vim pre 9.1.1115 checks in the ex_display() function, that it does not try to redirect to a register while displaying this register at the same time. However this check is not complete, and so Vim does not check the `+` and `*` registers (which typically donate the X11/clipboard registers, and when a clipboard connection is not possible will fall back to use register 0 instead. In Patch 9.1.1115 Vim will therefore skip outputting to register zero when trying to redirect to the clipboard registers `*` or `+`. Users are advised to upgrade. There are no known workarounds for this vulnerability.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-18 19:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Use after free when redirecting display command to",
                            "    register.",
                            "    - debian/patches/CVE-2025-26603.patch: Change redir_reg check to use",
                            "      vim_strchr command check in ./src/register.c.",
                            "    - CVE-2025-26603",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.1.2269-1ubuntu5.32",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Hlib Korzhynskyy <hlib.korzhynskyy@canonical.com>",
                        "date": "Wed, 02 Apr 2025 14:09:51 -0230"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "vim-common",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.1.2269-1ubuntu5.31",
                    "version": "2:8.1.2269-1ubuntu5.31"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.1.2269-1ubuntu5.32",
                    "version": "2:8.1.2269-1ubuntu5.32"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-26603",
                        "url": "https://ubuntu.com/security/CVE-2025-26603",
                        "cve_description": "Vim is a greatly improved version of the good old UNIX editor Vi. Vim allows to redirect screen messages using the `:redir` ex command to register, variables and files. It also allows to show the contents of registers using the `:registers` or `:display` ex command. When redirecting the output of `:display` to a register, Vim will free the register content before storing the new content in the register. Now when redirecting the `:display` command to a register that is being displayed, Vim will free the content while shortly afterwards trying to access it, which leads to a use-after-free. Vim pre 9.1.1115 checks in the ex_display() function, that it does not try to redirect to a register while displaying this register at the same time. However this check is not complete, and so Vim does not check the `+` and `*` registers (which typically donate the X11/clipboard registers, and when a clipboard connection is not possible will fall back to use register 0 instead. In Patch 9.1.1115 Vim will therefore skip outputting to register zero when trying to redirect to the clipboard registers `*` or `+`. Users are advised to upgrade. There are no known workarounds for this vulnerability.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-18 19:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-26603",
                                "url": "https://ubuntu.com/security/CVE-2025-26603",
                                "cve_description": "Vim is a greatly improved version of the good old UNIX editor Vi. Vim allows to redirect screen messages using the `:redir` ex command to register, variables and files. It also allows to show the contents of registers using the `:registers` or `:display` ex command. When redirecting the output of `:display` to a register, Vim will free the register content before storing the new content in the register. Now when redirecting the `:display` command to a register that is being displayed, Vim will free the content while shortly afterwards trying to access it, which leads to a use-after-free. Vim pre 9.1.1115 checks in the ex_display() function, that it does not try to redirect to a register while displaying this register at the same time. However this check is not complete, and so Vim does not check the `+` and `*` registers (which typically donate the X11/clipboard registers, and when a clipboard connection is not possible will fall back to use register 0 instead. In Patch 9.1.1115 Vim will therefore skip outputting to register zero when trying to redirect to the clipboard registers `*` or `+`. Users are advised to upgrade. There are no known workarounds for this vulnerability.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-18 19:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Use after free when redirecting display command to",
                            "    register.",
                            "    - debian/patches/CVE-2025-26603.patch: Change redir_reg check to use",
                            "      vim_strchr command check in ./src/register.c.",
                            "    - CVE-2025-26603",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.1.2269-1ubuntu5.32",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Hlib Korzhynskyy <hlib.korzhynskyy@canonical.com>",
                        "date": "Wed, 02 Apr 2025 14:09:51 -0230"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "vim-runtime",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.1.2269-1ubuntu5.31",
                    "version": "2:8.1.2269-1ubuntu5.31"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.1.2269-1ubuntu5.32",
                    "version": "2:8.1.2269-1ubuntu5.32"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-26603",
                        "url": "https://ubuntu.com/security/CVE-2025-26603",
                        "cve_description": "Vim is a greatly improved version of the good old UNIX editor Vi. Vim allows to redirect screen messages using the `:redir` ex command to register, variables and files. It also allows to show the contents of registers using the `:registers` or `:display` ex command. When redirecting the output of `:display` to a register, Vim will free the register content before storing the new content in the register. Now when redirecting the `:display` command to a register that is being displayed, Vim will free the content while shortly afterwards trying to access it, which leads to a use-after-free. Vim pre 9.1.1115 checks in the ex_display() function, that it does not try to redirect to a register while displaying this register at the same time. However this check is not complete, and so Vim does not check the `+` and `*` registers (which typically donate the X11/clipboard registers, and when a clipboard connection is not possible will fall back to use register 0 instead. In Patch 9.1.1115 Vim will therefore skip outputting to register zero when trying to redirect to the clipboard registers `*` or `+`. Users are advised to upgrade. There are no known workarounds for this vulnerability.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-18 19:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-26603",
                                "url": "https://ubuntu.com/security/CVE-2025-26603",
                                "cve_description": "Vim is a greatly improved version of the good old UNIX editor Vi. Vim allows to redirect screen messages using the `:redir` ex command to register, variables and files. It also allows to show the contents of registers using the `:registers` or `:display` ex command. When redirecting the output of `:display` to a register, Vim will free the register content before storing the new content in the register. Now when redirecting the `:display` command to a register that is being displayed, Vim will free the content while shortly afterwards trying to access it, which leads to a use-after-free. Vim pre 9.1.1115 checks in the ex_display() function, that it does not try to redirect to a register while displaying this register at the same time. However this check is not complete, and so Vim does not check the `+` and `*` registers (which typically donate the X11/clipboard registers, and when a clipboard connection is not possible will fall back to use register 0 instead. In Patch 9.1.1115 Vim will therefore skip outputting to register zero when trying to redirect to the clipboard registers `*` or `+`. Users are advised to upgrade. There are no known workarounds for this vulnerability.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-18 19:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Use after free when redirecting display command to",
                            "    register.",
                            "    - debian/patches/CVE-2025-26603.patch: Change redir_reg check to use",
                            "      vim_strchr command check in ./src/register.c.",
                            "    - CVE-2025-26603",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.1.2269-1ubuntu5.32",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Hlib Korzhynskyy <hlib.korzhynskyy@canonical.com>",
                        "date": "Wed, 02 Apr 2025 14:09:51 -0230"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "vim-tiny",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.1.2269-1ubuntu5.31",
                    "version": "2:8.1.2269-1ubuntu5.31"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.1.2269-1ubuntu5.32",
                    "version": "2:8.1.2269-1ubuntu5.32"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-26603",
                        "url": "https://ubuntu.com/security/CVE-2025-26603",
                        "cve_description": "Vim is a greatly improved version of the good old UNIX editor Vi. Vim allows to redirect screen messages using the `:redir` ex command to register, variables and files. It also allows to show the contents of registers using the `:registers` or `:display` ex command. When redirecting the output of `:display` to a register, Vim will free the register content before storing the new content in the register. Now when redirecting the `:display` command to a register that is being displayed, Vim will free the content while shortly afterwards trying to access it, which leads to a use-after-free. Vim pre 9.1.1115 checks in the ex_display() function, that it does not try to redirect to a register while displaying this register at the same time. However this check is not complete, and so Vim does not check the `+` and `*` registers (which typically donate the X11/clipboard registers, and when a clipboard connection is not possible will fall back to use register 0 instead. In Patch 9.1.1115 Vim will therefore skip outputting to register zero when trying to redirect to the clipboard registers `*` or `+`. Users are advised to upgrade. There are no known workarounds for this vulnerability.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-18 19:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-26603",
                                "url": "https://ubuntu.com/security/CVE-2025-26603",
                                "cve_description": "Vim is a greatly improved version of the good old UNIX editor Vi. Vim allows to redirect screen messages using the `:redir` ex command to register, variables and files. It also allows to show the contents of registers using the `:registers` or `:display` ex command. When redirecting the output of `:display` to a register, Vim will free the register content before storing the new content in the register. Now when redirecting the `:display` command to a register that is being displayed, Vim will free the content while shortly afterwards trying to access it, which leads to a use-after-free. Vim pre 9.1.1115 checks in the ex_display() function, that it does not try to redirect to a register while displaying this register at the same time. However this check is not complete, and so Vim does not check the `+` and `*` registers (which typically donate the X11/clipboard registers, and when a clipboard connection is not possible will fall back to use register 0 instead. In Patch 9.1.1115 Vim will therefore skip outputting to register zero when trying to redirect to the clipboard registers `*` or `+`. Users are advised to upgrade. There are no known workarounds for this vulnerability.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-18 19:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Use after free when redirecting display command to",
                            "    register.",
                            "    - debian/patches/CVE-2025-26603.patch: Change redir_reg check to use",
                            "      vim_strchr command check in ./src/register.c.",
                            "    - CVE-2025-26603",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.1.2269-1ubuntu5.32",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Hlib Korzhynskyy <hlib.korzhynskyy@canonical.com>",
                        "date": "Wed, 02 Apr 2025 14:09:51 -0230"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "xxd",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.1.2269-1ubuntu5.31",
                    "version": "2:8.1.2269-1ubuntu5.31"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.1.2269-1ubuntu5.32",
                    "version": "2:8.1.2269-1ubuntu5.32"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-26603",
                        "url": "https://ubuntu.com/security/CVE-2025-26603",
                        "cve_description": "Vim is a greatly improved version of the good old UNIX editor Vi. Vim allows to redirect screen messages using the `:redir` ex command to register, variables and files. It also allows to show the contents of registers using the `:registers` or `:display` ex command. When redirecting the output of `:display` to a register, Vim will free the register content before storing the new content in the register. Now when redirecting the `:display` command to a register that is being displayed, Vim will free the content while shortly afterwards trying to access it, which leads to a use-after-free. Vim pre 9.1.1115 checks in the ex_display() function, that it does not try to redirect to a register while displaying this register at the same time. However this check is not complete, and so Vim does not check the `+` and `*` registers (which typically donate the X11/clipboard registers, and when a clipboard connection is not possible will fall back to use register 0 instead. In Patch 9.1.1115 Vim will therefore skip outputting to register zero when trying to redirect to the clipboard registers `*` or `+`. Users are advised to upgrade. There are no known workarounds for this vulnerability.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-18 19:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-26603",
                                "url": "https://ubuntu.com/security/CVE-2025-26603",
                                "cve_description": "Vim is a greatly improved version of the good old UNIX editor Vi. Vim allows to redirect screen messages using the `:redir` ex command to register, variables and files. It also allows to show the contents of registers using the `:registers` or `:display` ex command. When redirecting the output of `:display` to a register, Vim will free the register content before storing the new content in the register. Now when redirecting the `:display` command to a register that is being displayed, Vim will free the content while shortly afterwards trying to access it, which leads to a use-after-free. Vim pre 9.1.1115 checks in the ex_display() function, that it does not try to redirect to a register while displaying this register at the same time. However this check is not complete, and so Vim does not check the `+` and `*` registers (which typically donate the X11/clipboard registers, and when a clipboard connection is not possible will fall back to use register 0 instead. In Patch 9.1.1115 Vim will therefore skip outputting to register zero when trying to redirect to the clipboard registers `*` or `+`. Users are advised to upgrade. There are no known workarounds for this vulnerability.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-18 19:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Use after free when redirecting display command to",
                            "    register.",
                            "    - debian/patches/CVE-2025-26603.patch: Change redir_reg check to use",
                            "      vim_strchr command check in ./src/register.c.",
                            "    - CVE-2025-26603",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.1.2269-1ubuntu5.32",
                        "urgency": "medium",
                        "distributions": "focal-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Hlib Korzhynskyy <hlib.korzhynskyy@canonical.com>",
                        "date": "Wed, 02 Apr 2025 14:09:51 -0230"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            }
        ],
        "snap": [
            {
                "name": "core20",
                "from_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": "2495"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": "2500"
                }
            }
        ]
    },
    "added": {
        "deb": [
            {
                "name": "linux-headers-5.4.0-214",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.4.0-212.232",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.4.0-214.234",
                    "version": "5.4.0-214.234"
                },
                "cves": [
                    {
                        "cve": "CVE-2024-50256",
                        "url": "https://ubuntu.com/security/CVE-2024-50256",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_reject_ipv6: fix potential crash in nf_send_reset6()  I got a syzbot report without a repro [1] crashing in nf_send_reset6()  I think the issue is that dev->hard_header_len is zero, and we attempt later to push an Ethernet header.  Use LL_MAX_HEADER, as other functions in net/ipv6/netfilter/nf_reject_ipv6.c.  [1]  skbuff: skb_under_panic: text:ffffffff89b1d008 len:74 put:14 head:ffff88803123aa00 data:ffff88803123a9f2 tail:0x3c end:0x140 dev:syz_tun  kernel BUG at net/core/skbuff.c:206 ! Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI CPU: 0 UID: 0 PID: 7373 Comm: syz.1.568 Not tainted 6.12.0-rc2-syzkaller-00631-g6d858708d465 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024  RIP: 0010:skb_panic net/core/skbuff.c:206 [inline]  RIP: 0010:skb_under_panic+0x14b/0x150 net/core/skbuff.c:216 Code: 0d 8d 48 c7 c6 60 a6 29 8e 48 8b 54 24 08 8b 0c 24 44 8b 44 24 04 4d 89 e9 50 41 54 41 57 41 56 e8 ba 30 38 02 48 83 c4 20 90 <0f> 0b 0f 1f 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 RSP: 0018:ffffc900045269b0 EFLAGS: 00010282 RAX: 0000000000000088 RBX: dffffc0000000000 RCX: cd66dacdc5d8e800 RDX: 0000000000000000 RSI: 0000000000000200 RDI: 0000000000000000 RBP: ffff88802d39a3d0 R08: ffffffff8174afec R09: 1ffff920008a4ccc R10: dffffc0000000000 R11: fffff520008a4ccd R12: 0000000000000140 R13: ffff88803123aa00 R14: ffff88803123a9f2 R15: 000000000000003c FS:  00007fdbee5ff6c0(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 000000005d322000 CR4: 00000000003526f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace:  <TASK>   skb_push+0xe5/0x100 net/core/skbuff.c:2636   eth_header+0x38/0x1f0 net/ethernet/eth.c:83   dev_hard_header include/linux/netdevice.h:3208 [inline]   nf_send_reset6+0xce6/0x1270 net/ipv6/netfilter/nf_reject_ipv6.c:358   nft_reject_inet_eval+0x3b9/0x690 net/netfilter/nft_reject_inet.c:48   expr_call_ops_eval net/netfilter/nf_tables_core.c:240 [inline]   nft_do_chain+0x4ad/0x1da0 net/netfilter/nf_tables_core.c:288   nft_do_chain_inet+0x418/0x6b0 net/netfilter/nft_chain_filter.c:161   nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]   nf_hook_slow+0xc3/0x220 net/netfilter/core.c:626   nf_hook include/linux/netfilter.h:269 [inline]   NF_HOOK include/linux/netfilter.h:312 [inline]   br_nf_pre_routing_ipv6+0x63e/0x770 net/bridge/br_netfilter_ipv6.c:184   nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]   nf_hook_bridge_pre net/bridge/br_input.c:277 [inline]   br_handle_frame+0x9fd/0x1530 net/bridge/br_input.c:424   __netif_receive_skb_core+0x13e8/0x4570 net/core/dev.c:5562   __netif_receive_skb_one_core net/core/dev.c:5666 [inline]   __netif_receive_skb+0x12f/0x650 net/core/dev.c:5781   netif_receive_skb_internal net/core/dev.c:5867 [inline]   netif_receive_skb+0x1e8/0x890 net/core/dev.c:5926   tun_rx_batched+0x1b7/0x8f0 drivers/net/tun.c:1550   tun_get_user+0x3056/0x47e0 drivers/net/tun.c:2007   tun_chr_write_iter+0x10d/0x1f0 drivers/net/tun.c:2053   new_sync_write fs/read_write.c:590 [inline]   vfs_write+0xa6d/0xc90 fs/read_write.c:683   ksys_write+0x183/0x2b0 fs/read_write.c:736   do_syscall_x64 arch/x86/entry/common.c:52 [inline]   do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fdbeeb7d1ff Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 c9 8d 02 00 48 8b 54 24 18 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 31 44 89 c7 48 89 44 24 08 e8 1c 8e 02 00 48 RSP: 002b:00007fdbee5ff000 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fdbeed36058 RCX: 00007fdbeeb7d1ff RDX: 000000000000008e RSI: 0000000020000040 RDI: 00000000000000c8 RBP: 00007fdbeebf12be R08: 0000000 ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-11-09 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-21702",
                        "url": "https://ubuntu.com/security/CVE-2025-21702",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pfifo_tail_enqueue: Drop new packet when sch->limit == 0  Expected behaviour: In case we reach scheduler's limit, pfifo_tail_enqueue() will drop a packet in scheduler's queue and decrease scheduler's qlen by one. Then, pfifo_tail_enqueue() enqueue new packet and increase scheduler's qlen by one. Finally, pfifo_tail_enqueue() return `NET_XMIT_CN` status code.  Weird behaviour: In case we set `sch->limit == 0` and trigger pfifo_tail_enqueue() on a scheduler that has no packet, the 'drop a packet' step will do nothing. This means the scheduler's qlen still has value equal 0. Then, we continue to enqueue new packet and increase scheduler's qlen by one. In summary, we can leverage pfifo_tail_enqueue() to increase qlen by one and return `NET_XMIT_CN` status code.  The problem is: Let's say we have two qdiscs: Qdisc_A and Qdisc_B.  - Qdisc_A's type must have '->graft()' function to create parent/child relationship.    Let's say Qdisc_A's type is `hfsc`. Enqueue packet to this qdisc will trigger `hfsc_enqueue`.  - Qdisc_B's type is pfifo_head_drop. Enqueue packet to this qdisc will trigger `pfifo_tail_enqueue`.  - Qdisc_B is configured to have `sch->limit == 0`.  - Qdisc_A is configured to route the enqueued's packet to Qdisc_B.  Enqueue packet through Qdisc_A will lead to:  - hfsc_enqueue(Qdisc_A) -> pfifo_tail_enqueue(Qdisc_B)  - Qdisc_B->q.qlen += 1  - pfifo_tail_enqueue() return `NET_XMIT_CN`  - hfsc_enqueue() check for `NET_XMIT_SUCCESS` and see `NET_XMIT_CN` => hfsc_enqueue() don't increase qlen of Qdisc_A.  The whole process lead to a situation where Qdisc_A->q.qlen == 0 and Qdisc_B->q.qlen == 1. Replace 'hfsc' with other type (for example: 'drr') still lead to the same problem. This violate the design where parent's qlen should equal to the sum of its childrens'qlen.  Bug impact: This issue can be used for user->kernel privilege escalation when it is reachable.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-18 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-21703",
                        "url": "https://ubuntu.com/security/CVE-2025-21703",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()  qdisc_tree_reduce_backlog() notifies parent qdisc only if child qdisc becomes empty, therefore we need to reduce the backlog of the child qdisc before calling it. Otherwise it would miss the opportunity to call cops->qlen_notify(), in the case of DRR, it resulted in UAF since DRR uses ->qlen_notify() to maintain its active list.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-18 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-26915",
                        "url": "https://ubuntu.com/security/CVE-2024-26915",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: Reset IH OVERFLOW_CLEAR bit Allows us to detect subsequent IH ring buffer overflows as well.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-04-17 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-21700",
                        "url": "https://ubuntu.com/security/CVE-2025-21700",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: Disallow replacing of child qdisc from one parent to another  Lion Ackermann was able to create a UAF which can be abused for privilege escalation with the following script  Step 1. create root qdisc tc qdisc add dev lo root handle 1:0 drr  step2. a class for packet aggregation do demonstrate uaf tc class add dev lo classid 1:1 drr  step3. a class for nesting tc class add dev lo classid 1:2 drr  step4. a class to graft qdisc to tc class add dev lo classid 1:3 drr  step5. tc qdisc add dev lo parent 1:1 handle 2:0 plug limit 1024  step6. tc qdisc add dev lo parent 1:2 handle 3:0 drr  step7. tc class add dev lo classid 3:1 drr  step 8. tc qdisc add dev lo parent 3:1 handle 4:0 pfifo  step 9. Display the class/qdisc layout  tc class ls dev lo  class drr 1:1 root leaf 2: quantum 64Kb  class drr 1:2 root leaf 3: quantum 64Kb  class drr 3:1 root leaf 4: quantum 64Kb  tc qdisc ls  qdisc drr 1: dev lo root refcnt 2  qdisc plug 2: dev lo parent 1:1  qdisc pfifo 4: dev lo parent 3:1 limit 1000p  qdisc drr 3: dev lo parent 1:2  step10. trigger the bug <=== prevented by this patch tc qdisc replace dev lo parent 1:3 handle 4:0  step 11. Redisplay again the qdiscs/classes  tc class ls dev lo  class drr 1:1 root leaf 2: quantum 64Kb  class drr 1:2 root leaf 3: quantum 64Kb  class drr 1:3 root leaf 4: quantum 64Kb  class drr 3:1 root leaf 4: quantum 64Kb  tc qdisc ls  qdisc drr 1: dev lo root refcnt 2  qdisc plug 2: dev lo parent 1:1  qdisc pfifo 4: dev lo parent 3:1 refcnt 2 limit 1000p  qdisc drr 3: dev lo parent 1:2  Observe that a) parent for 4:0 does not change despite the replace request. There can only be one parent.  b) refcount has gone up by two for 4:0 and c) both class 1:3 and 3:1 are pointing to it.  Step 12.  send one packet to plug echo \"\" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10001)) step13.  send one packet to the grafted fifo echo \"\" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10003))  step14. lets trigger the uaf tc class delete dev lo classid 1:3 tc class delete dev lo classid 1:1  The semantics of \"replace\" is for a del/add _on the same node_ and not a delete from one node(3:1) and add to another node (1:3) as in step10. While we could \"fix\" with a more complex approach there could be consequences to expectations so the patch takes the preventive approach of \"disallow such config\".  Joint work with Lion Ackermann <nnamrec@gmail.com>",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-13 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-46826",
                        "url": "https://ubuntu.com/security/CVE-2024-46826",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ELF: fix kernel.randomize_va_space double read  ELF loader uses \"randomize_va_space\" twice. It is sysctl and can change at any moment, so 2 loads could see 2 different values in theory with unpredictable consequences.  Issue exactly one load for consistent value across one exec.",
                        "cve_priority": "low",
                        "cve_public_date": "2024-09-27 13:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-56651",
                        "url": "https://ubuntu.com/security/CVE-2024-56651",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: hi311x: hi3110_can_ist(): fix potential use-after-free  The commit a22bd630cfff (\"can: hi311x: do not report txerr and rxerr during bus-off\") removed the reporting of rxerr and txerr even in case of correct operation (i. e. not bus-off).  The error count information added to the CAN frame after netif_rx() is a potential use after free, since there is no guarantee that the skb is in the same state. It might be freed or reused.  Fix the issue by postponing the netif_rx() call in case of txerr and rxerr reporting.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-12-27 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-53237",
                        "url": "https://ubuntu.com/security/CVE-2024-53237",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: fix use-after-free in device_for_each_child()  Syzbot has reported the following KASAN splat:  BUG: KASAN: slab-use-after-free in device_for_each_child+0x18f/0x1a0 Read of size 8 at addr ffff88801f605308 by task kbnepd bnep0/4980  CPU: 0 UID: 0 PID: 4980 Comm: kbnepd bnep0 Not tainted 6.12.0-rc4-00161-gae90f6a6170d #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014 Call Trace:  <TASK>  dump_stack_lvl+0x100/0x190  ? device_for_each_child+0x18f/0x1a0  print_report+0x13a/0x4cb  ? __virt_addr_valid+0x5e/0x590  ? __phys_addr+0xc6/0x150  ? device_for_each_child+0x18f/0x1a0  kasan_report+0xda/0x110  ? device_for_each_child+0x18f/0x1a0  ? __pfx_dev_memalloc_noio+0x10/0x10  device_for_each_child+0x18f/0x1a0  ? __pfx_device_for_each_child+0x10/0x10  pm_runtime_set_memalloc_noio+0xf2/0x180  netdev_unregister_kobject+0x1ed/0x270  unregister_netdevice_many_notify+0x123c/0x1d80  ? __mutex_trylock_common+0xde/0x250  ? __pfx_unregister_netdevice_many_notify+0x10/0x10  ? trace_contention_end+0xe6/0x140  ? __mutex_lock+0x4e7/0x8f0  ? __pfx_lock_acquire.part.0+0x10/0x10  ? rcu_is_watching+0x12/0xc0  ? unregister_netdev+0x12/0x30  unregister_netdevice_queue+0x30d/0x3f0  ? __pfx_unregister_netdevice_queue+0x10/0x10  ? __pfx_down_write+0x10/0x10  unregister_netdev+0x1c/0x30  bnep_session+0x1fb3/0x2ab0  ? __pfx_bnep_session+0x10/0x10  ? __pfx_lock_release+0x10/0x10  ? __pfx_woken_wake_function+0x10/0x10  ? __kthread_parkme+0x132/0x200  ? __pfx_bnep_session+0x10/0x10  ? kthread+0x13a/0x370  ? __pfx_bnep_session+0x10/0x10  kthread+0x2b7/0x370  ? __pfx_kthread+0x10/0x10  ret_from_fork+0x48/0x80  ? __pfx_kthread+0x10/0x10  ret_from_fork_asm+0x1a/0x30  </TASK>  Allocated by task 4974:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0xaa/0xb0  __kmalloc_noprof+0x1d1/0x440  hci_alloc_dev_priv+0x1d/0x2820  __vhci_create_device+0xef/0x7d0  vhci_write+0x2c7/0x480  vfs_write+0x6a0/0xfc0  ksys_write+0x12f/0x260  do_syscall_64+0xc7/0x250  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 4979:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  kasan_save_free_info+0x3b/0x60  __kasan_slab_free+0x4f/0x70  kfree+0x141/0x490  hci_release_dev+0x4d9/0x600  bt_host_release+0x6a/0xb0  device_release+0xa4/0x240  kobject_put+0x1ec/0x5a0  put_device+0x1f/0x30  vhci_release+0x81/0xf0  __fput+0x3f6/0xb30  task_work_run+0x151/0x250  do_exit+0xa79/0x2c30  do_group_exit+0xd5/0x2a0  get_signal+0x1fcd/0x2210  arch_do_signal_or_restart+0x93/0x780  syscall_exit_to_user_mode+0x140/0x290  do_syscall_64+0xd4/0x250  entry_SYSCALL_64_after_hwframe+0x77/0x7f  In 'hci_conn_del_sysfs()', 'device_unregister()' may be called when an underlying (kobject) reference counter is greater than 1. This means that reparenting (happened when the device is actually freed) is delayed and, during that delay, parent controller device (hciX) may be deleted. Since the latter may create a dangling pointer to freed parent, avoid that scenario by reparenting to NULL explicitly.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-12-27 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-35958",
                        "url": "https://ubuntu.com/security/CVE-2024-35958",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: net: ena: Fix incorrect descriptor free behavior ENA has two types of TX queues: - queues which only process TX packets arriving from the network stack - queues which only process TX packets forwarded to it by XDP_REDIRECT or XDP_TX instructions The ena_free_tx_bufs() cycles through all descriptors in a TX queue and unmaps + frees every descriptor that hasn't been acknowledged yet by the device (uncompleted TX transactions). The function assumes that the processed TX queue is necessarily from the first category listed above and ends up using napi_consume_skb() for descriptors belonging to an XDP specific queue. This patch solves a bug in which, in case of a VF reset, the descriptors aren't freed correctly, leading to crashes.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-05-20 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-49974",
                        "url": "https://ubuntu.com/security/CVE-2024-49974",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: Limit the number of concurrent async COPY operations  Nothing appears to limit the number of concurrent async COPY operations that clients can start. In addition, AFAICT each async COPY can copy an unlimited number of 4MB chunks, so can run for a long time. Thus IMO async COPY can become a DoS vector.  Add a restriction mechanism that bounds the number of concurrent background COPY operations. Start simple and try to be fair -- this patch implements a per-namespace limit.  An async COPY request that occurs while this limit is exceeded gets NFS4ERR_DELAY. The requesting client can choose to send the request again after a delay or fall back to a traditional read/write style copy.  If there is need to make the mechanism more sophisticated, we can visit that in future patches.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-10-21 18:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2021-47119",
                        "url": "https://ubuntu.com/security/CVE-2021-47119",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: ext4: fix memory leak in ext4_fill_super Buffer head references must be released before calling kill_bdev(); otherwise the buffer head (and its page referenced by b_data) will not be freed by kill_bdev, and subsequently that bh will be leaked. If blocksizes differ, sb_set_blocksize() will kill current buffers and page cache by using kill_bdev(). And then super block will be reread again but using correct blocksize this time. sb_set_blocksize() didn't fully free superblock page and buffer head, and being busy, they were not freed and instead leaked. This can easily be reproduced by calling an infinite loop of: systemctl start <ext4_on_lvm>.mount, and systemctl stop <ext4_on_lvm>.mount ... since systemd creates a cgroup for each slice which it mounts, and the bh leak get amplified by a dying memory cgroup that also never gets freed, and memory consumption is much more easily noticed.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-03-15 21:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-56658",
                        "url": "https://ubuntu.com/security/CVE-2024-56658",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: defer final 'struct net' free in netns dismantle  Ilya reported a slab-use-after-free in dst_destroy [1]  Issue is in xfrm6_net_init() and xfrm4_net_init() :  They copy xfrm[46]_dst_ops_template into net->xfrm.xfrm[46]_dst_ops.  But net structure might be freed before all the dst callbacks are called. So when dst_destroy() calls later :  if (dst->ops->destroy)     dst->ops->destroy(dst);  dst->ops points to the old net->xfrm.xfrm[46]_dst_ops, which has been freed.  See a relevant issue fixed in :  ac888d58869b (\"net: do not delay dst_entries_add() in dst_release()\")  A fix is to queue the 'struct net' to be freed after one another cleanup_net() round (and existing rcu_barrier())  [1]  BUG: KASAN: slab-use-after-free in dst_destroy (net/core/dst.c:112) Read of size 8 at addr ffff8882137ccab0 by task swapper/37/0 Dec 03 05:46:18 kernel: CPU: 37 UID: 0 PID: 0 Comm: swapper/37 Kdump: loaded Not tainted 6.12.0 #67 Hardware name: Red Hat KVM/RHEL, BIOS 1.16.1-1.el9 04/01/2014 Call Trace:  <IRQ> dump_stack_lvl (lib/dump_stack.c:124) print_address_description.constprop.0 (mm/kasan/report.c:378) ? dst_destroy (net/core/dst.c:112) print_report (mm/kasan/report.c:489) ? dst_destroy (net/core/dst.c:112) ? kasan_addr_to_slab (mm/kasan/common.c:37) kasan_report (mm/kasan/report.c:603) ? dst_destroy (net/core/dst.c:112) ? rcu_do_batch (kernel/rcu/tree.c:2567) dst_destroy (net/core/dst.c:112) rcu_do_batch (kernel/rcu/tree.c:2567) ? __pfx_rcu_do_batch (kernel/rcu/tree.c:2491) ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4339 kernel/locking/lockdep.c:4406) rcu_core (kernel/rcu/tree.c:2825) handle_softirqs (kernel/softirq.c:554) __irq_exit_rcu (kernel/softirq.c:589 kernel/softirq.c:428 kernel/softirq.c:637) irq_exit_rcu (kernel/softirq.c:651) sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1049 arch/x86/kernel/apic/apic.c:1049)  </IRQ>  <TASK> asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:702) RIP: 0010:default_idle (./arch/x86/include/asm/irqflags.h:37 ./arch/x86/include/asm/irqflags.h:92 arch/x86/kernel/process.c:743) Code: 00 4d 29 c8 4c 01 c7 4c 29 c2 e9 6e ff ff ff 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 66 90 0f 00 2d c7 c9 27 00 fb f4 <fa> c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 90 RSP: 0018:ffff888100d2fe00 EFLAGS: 00000246 RAX: 00000000001870ed RBX: 1ffff110201a5fc2 RCX: ffffffffb61a3e46 RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffffb3d4d123 RBP: 0000000000000000 R08: 0000000000000001 R09: ffffed11c7e1835d R10: ffff888e3f0c1aeb R11: 0000000000000000 R12: 0000000000000000 R13: ffff888100d20000 R14: dffffc0000000000 R15: 0000000000000000 ? ct_kernel_exit.constprop.0 (kernel/context_tracking.c:148) ? cpuidle_idle_call (kernel/sched/idle.c:186) default_idle_call (./include/linux/cpuidle.h:143 kernel/sched/idle.c:118) cpuidle_idle_call (kernel/sched/idle.c:186) ? __pfx_cpuidle_idle_call (kernel/sched/idle.c:168) ? lock_release (kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5848) ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4347 kernel/locking/lockdep.c:4406) ? tsc_verify_tsc_adjust (arch/x86/kernel/tsc_sync.c:59) do_idle (kernel/sched/idle.c:326) cpu_startup_entry (kernel/sched/idle.c:423 (discriminator 1)) start_secondary (arch/x86/kernel/smpboot.c:202 arch/x86/kernel/smpboot.c:282) ? __pfx_start_secondary (arch/x86/kernel/smpboot.c:232) ? soft_restart_cpu (arch/x86/kernel/head_64.S:452) common_startup_64 (arch/x86/kernel/head_64.S:414)  </TASK> Dec 03 05:46:18 kernel: Allocated by task 12184: kasan_save_stack (mm/kasan/common.c:48) kasan_save_track (./arch/x86/include/asm/current.h:49 mm/kasan/common.c:60 mm/kasan/common.c:69) __kasan_slab_alloc (mm/kasan/common.c:319 mm/kasan/common.c:345) kmem_cache_alloc_noprof (mm/slub.c:4085 mm/slub.c:4134 mm/slub.c:4141) copy_net_ns (net/core/net_namespace.c:421 net/core/net_namespace.c:480) create_new_namespaces ---truncated---",
                        "cve_priority": "high",
                        "cve_public_date": "2024-12-27 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-35864",
                        "url": "https://ubuntu.com/security/CVE-2024-35864",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: smb: client: fix potential UAF in smb2_is_valid_lease_break() Skip sessions that are being teared down (status == SES_EXITING) to avoid UAF.",
                        "cve_priority": "high",
                        "cve_public_date": "2024-05-19 09:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-26928",
                        "url": "https://ubuntu.com/security/CVE-2024-26928",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: smb: client: fix potential UAF in cifs_debug_files_proc_show() Skip sessions that are being teared down (status == SES_EXITING) to avoid UAF.",
                        "cve_priority": "high",
                        "cve_public_date": "2024-04-28 12:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2102635
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2024-50256",
                                "url": "https://ubuntu.com/security/CVE-2024-50256",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_reject_ipv6: fix potential crash in nf_send_reset6()  I got a syzbot report without a repro [1] crashing in nf_send_reset6()  I think the issue is that dev->hard_header_len is zero, and we attempt later to push an Ethernet header.  Use LL_MAX_HEADER, as other functions in net/ipv6/netfilter/nf_reject_ipv6.c.  [1]  skbuff: skb_under_panic: text:ffffffff89b1d008 len:74 put:14 head:ffff88803123aa00 data:ffff88803123a9f2 tail:0x3c end:0x140 dev:syz_tun  kernel BUG at net/core/skbuff.c:206 ! Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI CPU: 0 UID: 0 PID: 7373 Comm: syz.1.568 Not tainted 6.12.0-rc2-syzkaller-00631-g6d858708d465 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024  RIP: 0010:skb_panic net/core/skbuff.c:206 [inline]  RIP: 0010:skb_under_panic+0x14b/0x150 net/core/skbuff.c:216 Code: 0d 8d 48 c7 c6 60 a6 29 8e 48 8b 54 24 08 8b 0c 24 44 8b 44 24 04 4d 89 e9 50 41 54 41 57 41 56 e8 ba 30 38 02 48 83 c4 20 90 <0f> 0b 0f 1f 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 RSP: 0018:ffffc900045269b0 EFLAGS: 00010282 RAX: 0000000000000088 RBX: dffffc0000000000 RCX: cd66dacdc5d8e800 RDX: 0000000000000000 RSI: 0000000000000200 RDI: 0000000000000000 RBP: ffff88802d39a3d0 R08: ffffffff8174afec R09: 1ffff920008a4ccc R10: dffffc0000000000 R11: fffff520008a4ccd R12: 0000000000000140 R13: ffff88803123aa00 R14: ffff88803123a9f2 R15: 000000000000003c FS:  00007fdbee5ff6c0(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 000000005d322000 CR4: 00000000003526f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace:  <TASK>   skb_push+0xe5/0x100 net/core/skbuff.c:2636   eth_header+0x38/0x1f0 net/ethernet/eth.c:83   dev_hard_header include/linux/netdevice.h:3208 [inline]   nf_send_reset6+0xce6/0x1270 net/ipv6/netfilter/nf_reject_ipv6.c:358   nft_reject_inet_eval+0x3b9/0x690 net/netfilter/nft_reject_inet.c:48   expr_call_ops_eval net/netfilter/nf_tables_core.c:240 [inline]   nft_do_chain+0x4ad/0x1da0 net/netfilter/nf_tables_core.c:288   nft_do_chain_inet+0x418/0x6b0 net/netfilter/nft_chain_filter.c:161   nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]   nf_hook_slow+0xc3/0x220 net/netfilter/core.c:626   nf_hook include/linux/netfilter.h:269 [inline]   NF_HOOK include/linux/netfilter.h:312 [inline]   br_nf_pre_routing_ipv6+0x63e/0x770 net/bridge/br_netfilter_ipv6.c:184   nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]   nf_hook_bridge_pre net/bridge/br_input.c:277 [inline]   br_handle_frame+0x9fd/0x1530 net/bridge/br_input.c:424   __netif_receive_skb_core+0x13e8/0x4570 net/core/dev.c:5562   __netif_receive_skb_one_core net/core/dev.c:5666 [inline]   __netif_receive_skb+0x12f/0x650 net/core/dev.c:5781   netif_receive_skb_internal net/core/dev.c:5867 [inline]   netif_receive_skb+0x1e8/0x890 net/core/dev.c:5926   tun_rx_batched+0x1b7/0x8f0 drivers/net/tun.c:1550   tun_get_user+0x3056/0x47e0 drivers/net/tun.c:2007   tun_chr_write_iter+0x10d/0x1f0 drivers/net/tun.c:2053   new_sync_write fs/read_write.c:590 [inline]   vfs_write+0xa6d/0xc90 fs/read_write.c:683   ksys_write+0x183/0x2b0 fs/read_write.c:736   do_syscall_x64 arch/x86/entry/common.c:52 [inline]   do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fdbeeb7d1ff Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 c9 8d 02 00 48 8b 54 24 18 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 31 44 89 c7 48 89 44 24 08 e8 1c 8e 02 00 48 RSP: 002b:00007fdbee5ff000 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fdbeed36058 RCX: 00007fdbeeb7d1ff RDX: 000000000000008e RSI: 0000000020000040 RDI: 00000000000000c8 RBP: 00007fdbeebf12be R08: 0000000 ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-11-09 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-21702",
                                "url": "https://ubuntu.com/security/CVE-2025-21702",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pfifo_tail_enqueue: Drop new packet when sch->limit == 0  Expected behaviour: In case we reach scheduler's limit, pfifo_tail_enqueue() will drop a packet in scheduler's queue and decrease scheduler's qlen by one. Then, pfifo_tail_enqueue() enqueue new packet and increase scheduler's qlen by one. Finally, pfifo_tail_enqueue() return `NET_XMIT_CN` status code.  Weird behaviour: In case we set `sch->limit == 0` and trigger pfifo_tail_enqueue() on a scheduler that has no packet, the 'drop a packet' step will do nothing. This means the scheduler's qlen still has value equal 0. Then, we continue to enqueue new packet and increase scheduler's qlen by one. In summary, we can leverage pfifo_tail_enqueue() to increase qlen by one and return `NET_XMIT_CN` status code.  The problem is: Let's say we have two qdiscs: Qdisc_A and Qdisc_B.  - Qdisc_A's type must have '->graft()' function to create parent/child relationship.    Let's say Qdisc_A's type is `hfsc`. Enqueue packet to this qdisc will trigger `hfsc_enqueue`.  - Qdisc_B's type is pfifo_head_drop. Enqueue packet to this qdisc will trigger `pfifo_tail_enqueue`.  - Qdisc_B is configured to have `sch->limit == 0`.  - Qdisc_A is configured to route the enqueued's packet to Qdisc_B.  Enqueue packet through Qdisc_A will lead to:  - hfsc_enqueue(Qdisc_A) -> pfifo_tail_enqueue(Qdisc_B)  - Qdisc_B->q.qlen += 1  - pfifo_tail_enqueue() return `NET_XMIT_CN`  - hfsc_enqueue() check for `NET_XMIT_SUCCESS` and see `NET_XMIT_CN` => hfsc_enqueue() don't increase qlen of Qdisc_A.  The whole process lead to a situation where Qdisc_A->q.qlen == 0 and Qdisc_B->q.qlen == 1. Replace 'hfsc' with other type (for example: 'drr') still lead to the same problem. This violate the design where parent's qlen should equal to the sum of its childrens'qlen.  Bug impact: This issue can be used for user->kernel privilege escalation when it is reachable.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-18 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-21703",
                                "url": "https://ubuntu.com/security/CVE-2025-21703",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()  qdisc_tree_reduce_backlog() notifies parent qdisc only if child qdisc becomes empty, therefore we need to reduce the backlog of the child qdisc before calling it. Otherwise it would miss the opportunity to call cops->qlen_notify(), in the case of DRR, it resulted in UAF since DRR uses ->qlen_notify() to maintain its active list.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-18 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-26915",
                                "url": "https://ubuntu.com/security/CVE-2024-26915",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: Reset IH OVERFLOW_CLEAR bit Allows us to detect subsequent IH ring buffer overflows as well.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-04-17 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-21700",
                                "url": "https://ubuntu.com/security/CVE-2025-21700",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: Disallow replacing of child qdisc from one parent to another  Lion Ackermann was able to create a UAF which can be abused for privilege escalation with the following script  Step 1. create root qdisc tc qdisc add dev lo root handle 1:0 drr  step2. a class for packet aggregation do demonstrate uaf tc class add dev lo classid 1:1 drr  step3. a class for nesting tc class add dev lo classid 1:2 drr  step4. a class to graft qdisc to tc class add dev lo classid 1:3 drr  step5. tc qdisc add dev lo parent 1:1 handle 2:0 plug limit 1024  step6. tc qdisc add dev lo parent 1:2 handle 3:0 drr  step7. tc class add dev lo classid 3:1 drr  step 8. tc qdisc add dev lo parent 3:1 handle 4:0 pfifo  step 9. Display the class/qdisc layout  tc class ls dev lo  class drr 1:1 root leaf 2: quantum 64Kb  class drr 1:2 root leaf 3: quantum 64Kb  class drr 3:1 root leaf 4: quantum 64Kb  tc qdisc ls  qdisc drr 1: dev lo root refcnt 2  qdisc plug 2: dev lo parent 1:1  qdisc pfifo 4: dev lo parent 3:1 limit 1000p  qdisc drr 3: dev lo parent 1:2  step10. trigger the bug <=== prevented by this patch tc qdisc replace dev lo parent 1:3 handle 4:0  step 11. Redisplay again the qdiscs/classes  tc class ls dev lo  class drr 1:1 root leaf 2: quantum 64Kb  class drr 1:2 root leaf 3: quantum 64Kb  class drr 1:3 root leaf 4: quantum 64Kb  class drr 3:1 root leaf 4: quantum 64Kb  tc qdisc ls  qdisc drr 1: dev lo root refcnt 2  qdisc plug 2: dev lo parent 1:1  qdisc pfifo 4: dev lo parent 3:1 refcnt 2 limit 1000p  qdisc drr 3: dev lo parent 1:2  Observe that a) parent for 4:0 does not change despite the replace request. There can only be one parent.  b) refcount has gone up by two for 4:0 and c) both class 1:3 and 3:1 are pointing to it.  Step 12.  send one packet to plug echo \"\" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10001)) step13.  send one packet to the grafted fifo echo \"\" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10003))  step14. lets trigger the uaf tc class delete dev lo classid 1:3 tc class delete dev lo classid 1:1  The semantics of \"replace\" is for a del/add _on the same node_ and not a delete from one node(3:1) and add to another node (1:3) as in step10. While we could \"fix\" with a more complex approach there could be consequences to expectations so the patch takes the preventive approach of \"disallow such config\".  Joint work with Lion Ackermann <nnamrec@gmail.com>",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-13 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-46826",
                                "url": "https://ubuntu.com/security/CVE-2024-46826",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ELF: fix kernel.randomize_va_space double read  ELF loader uses \"randomize_va_space\" twice. It is sysctl and can change at any moment, so 2 loads could see 2 different values in theory with unpredictable consequences.  Issue exactly one load for consistent value across one exec.",
                                "cve_priority": "low",
                                "cve_public_date": "2024-09-27 13:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-56651",
                                "url": "https://ubuntu.com/security/CVE-2024-56651",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: hi311x: hi3110_can_ist(): fix potential use-after-free  The commit a22bd630cfff (\"can: hi311x: do not report txerr and rxerr during bus-off\") removed the reporting of rxerr and txerr even in case of correct operation (i. e. not bus-off).  The error count information added to the CAN frame after netif_rx() is a potential use after free, since there is no guarantee that the skb is in the same state. It might be freed or reused.  Fix the issue by postponing the netif_rx() call in case of txerr and rxerr reporting.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-12-27 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-53237",
                                "url": "https://ubuntu.com/security/CVE-2024-53237",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: fix use-after-free in device_for_each_child()  Syzbot has reported the following KASAN splat:  BUG: KASAN: slab-use-after-free in device_for_each_child+0x18f/0x1a0 Read of size 8 at addr ffff88801f605308 by task kbnepd bnep0/4980  CPU: 0 UID: 0 PID: 4980 Comm: kbnepd bnep0 Not tainted 6.12.0-rc4-00161-gae90f6a6170d #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014 Call Trace:  <TASK>  dump_stack_lvl+0x100/0x190  ? device_for_each_child+0x18f/0x1a0  print_report+0x13a/0x4cb  ? __virt_addr_valid+0x5e/0x590  ? __phys_addr+0xc6/0x150  ? device_for_each_child+0x18f/0x1a0  kasan_report+0xda/0x110  ? device_for_each_child+0x18f/0x1a0  ? __pfx_dev_memalloc_noio+0x10/0x10  device_for_each_child+0x18f/0x1a0  ? __pfx_device_for_each_child+0x10/0x10  pm_runtime_set_memalloc_noio+0xf2/0x180  netdev_unregister_kobject+0x1ed/0x270  unregister_netdevice_many_notify+0x123c/0x1d80  ? __mutex_trylock_common+0xde/0x250  ? __pfx_unregister_netdevice_many_notify+0x10/0x10  ? trace_contention_end+0xe6/0x140  ? __mutex_lock+0x4e7/0x8f0  ? __pfx_lock_acquire.part.0+0x10/0x10  ? rcu_is_watching+0x12/0xc0  ? unregister_netdev+0x12/0x30  unregister_netdevice_queue+0x30d/0x3f0  ? __pfx_unregister_netdevice_queue+0x10/0x10  ? __pfx_down_write+0x10/0x10  unregister_netdev+0x1c/0x30  bnep_session+0x1fb3/0x2ab0  ? __pfx_bnep_session+0x10/0x10  ? __pfx_lock_release+0x10/0x10  ? __pfx_woken_wake_function+0x10/0x10  ? __kthread_parkme+0x132/0x200  ? __pfx_bnep_session+0x10/0x10  ? kthread+0x13a/0x370  ? __pfx_bnep_session+0x10/0x10  kthread+0x2b7/0x370  ? __pfx_kthread+0x10/0x10  ret_from_fork+0x48/0x80  ? __pfx_kthread+0x10/0x10  ret_from_fork_asm+0x1a/0x30  </TASK>  Allocated by task 4974:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0xaa/0xb0  __kmalloc_noprof+0x1d1/0x440  hci_alloc_dev_priv+0x1d/0x2820  __vhci_create_device+0xef/0x7d0  vhci_write+0x2c7/0x480  vfs_write+0x6a0/0xfc0  ksys_write+0x12f/0x260  do_syscall_64+0xc7/0x250  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 4979:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  kasan_save_free_info+0x3b/0x60  __kasan_slab_free+0x4f/0x70  kfree+0x141/0x490  hci_release_dev+0x4d9/0x600  bt_host_release+0x6a/0xb0  device_release+0xa4/0x240  kobject_put+0x1ec/0x5a0  put_device+0x1f/0x30  vhci_release+0x81/0xf0  __fput+0x3f6/0xb30  task_work_run+0x151/0x250  do_exit+0xa79/0x2c30  do_group_exit+0xd5/0x2a0  get_signal+0x1fcd/0x2210  arch_do_signal_or_restart+0x93/0x780  syscall_exit_to_user_mode+0x140/0x290  do_syscall_64+0xd4/0x250  entry_SYSCALL_64_after_hwframe+0x77/0x7f  In 'hci_conn_del_sysfs()', 'device_unregister()' may be called when an underlying (kobject) reference counter is greater than 1. This means that reparenting (happened when the device is actually freed) is delayed and, during that delay, parent controller device (hciX) may be deleted. Since the latter may create a dangling pointer to freed parent, avoid that scenario by reparenting to NULL explicitly.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-12-27 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-35958",
                                "url": "https://ubuntu.com/security/CVE-2024-35958",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: net: ena: Fix incorrect descriptor free behavior ENA has two types of TX queues: - queues which only process TX packets arriving from the network stack - queues which only process TX packets forwarded to it by XDP_REDIRECT or XDP_TX instructions The ena_free_tx_bufs() cycles through all descriptors in a TX queue and unmaps + frees every descriptor that hasn't been acknowledged yet by the device (uncompleted TX transactions). The function assumes that the processed TX queue is necessarily from the first category listed above and ends up using napi_consume_skb() for descriptors belonging to an XDP specific queue. This patch solves a bug in which, in case of a VF reset, the descriptors aren't freed correctly, leading to crashes.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-05-20 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-49974",
                                "url": "https://ubuntu.com/security/CVE-2024-49974",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: Limit the number of concurrent async COPY operations  Nothing appears to limit the number of concurrent async COPY operations that clients can start. In addition, AFAICT each async COPY can copy an unlimited number of 4MB chunks, so can run for a long time. Thus IMO async COPY can become a DoS vector.  Add a restriction mechanism that bounds the number of concurrent background COPY operations. Start simple and try to be fair -- this patch implements a per-namespace limit.  An async COPY request that occurs while this limit is exceeded gets NFS4ERR_DELAY. The requesting client can choose to send the request again after a delay or fall back to a traditional read/write style copy.  If there is need to make the mechanism more sophisticated, we can visit that in future patches.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-10-21 18:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2021-47119",
                                "url": "https://ubuntu.com/security/CVE-2021-47119",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: ext4: fix memory leak in ext4_fill_super Buffer head references must be released before calling kill_bdev(); otherwise the buffer head (and its page referenced by b_data) will not be freed by kill_bdev, and subsequently that bh will be leaked. If blocksizes differ, sb_set_blocksize() will kill current buffers and page cache by using kill_bdev(). And then super block will be reread again but using correct blocksize this time. sb_set_blocksize() didn't fully free superblock page and buffer head, and being busy, they were not freed and instead leaked. This can easily be reproduced by calling an infinite loop of: systemctl start <ext4_on_lvm>.mount, and systemctl stop <ext4_on_lvm>.mount ... since systemd creates a cgroup for each slice which it mounts, and the bh leak get amplified by a dying memory cgroup that also never gets freed, and memory consumption is much more easily noticed.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-03-15 21:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-56658",
                                "url": "https://ubuntu.com/security/CVE-2024-56658",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: defer final 'struct net' free in netns dismantle  Ilya reported a slab-use-after-free in dst_destroy [1]  Issue is in xfrm6_net_init() and xfrm4_net_init() :  They copy xfrm[46]_dst_ops_template into net->xfrm.xfrm[46]_dst_ops.  But net structure might be freed before all the dst callbacks are called. So when dst_destroy() calls later :  if (dst->ops->destroy)     dst->ops->destroy(dst);  dst->ops points to the old net->xfrm.xfrm[46]_dst_ops, which has been freed.  See a relevant issue fixed in :  ac888d58869b (\"net: do not delay dst_entries_add() in dst_release()\")  A fix is to queue the 'struct net' to be freed after one another cleanup_net() round (and existing rcu_barrier())  [1]  BUG: KASAN: slab-use-after-free in dst_destroy (net/core/dst.c:112) Read of size 8 at addr ffff8882137ccab0 by task swapper/37/0 Dec 03 05:46:18 kernel: CPU: 37 UID: 0 PID: 0 Comm: swapper/37 Kdump: loaded Not tainted 6.12.0 #67 Hardware name: Red Hat KVM/RHEL, BIOS 1.16.1-1.el9 04/01/2014 Call Trace:  <IRQ> dump_stack_lvl (lib/dump_stack.c:124) print_address_description.constprop.0 (mm/kasan/report.c:378) ? dst_destroy (net/core/dst.c:112) print_report (mm/kasan/report.c:489) ? dst_destroy (net/core/dst.c:112) ? kasan_addr_to_slab (mm/kasan/common.c:37) kasan_report (mm/kasan/report.c:603) ? dst_destroy (net/core/dst.c:112) ? rcu_do_batch (kernel/rcu/tree.c:2567) dst_destroy (net/core/dst.c:112) rcu_do_batch (kernel/rcu/tree.c:2567) ? __pfx_rcu_do_batch (kernel/rcu/tree.c:2491) ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4339 kernel/locking/lockdep.c:4406) rcu_core (kernel/rcu/tree.c:2825) handle_softirqs (kernel/softirq.c:554) __irq_exit_rcu (kernel/softirq.c:589 kernel/softirq.c:428 kernel/softirq.c:637) irq_exit_rcu (kernel/softirq.c:651) sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1049 arch/x86/kernel/apic/apic.c:1049)  </IRQ>  <TASK> asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:702) RIP: 0010:default_idle (./arch/x86/include/asm/irqflags.h:37 ./arch/x86/include/asm/irqflags.h:92 arch/x86/kernel/process.c:743) Code: 00 4d 29 c8 4c 01 c7 4c 29 c2 e9 6e ff ff ff 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 66 90 0f 00 2d c7 c9 27 00 fb f4 <fa> c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 90 RSP: 0018:ffff888100d2fe00 EFLAGS: 00000246 RAX: 00000000001870ed RBX: 1ffff110201a5fc2 RCX: ffffffffb61a3e46 RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffffb3d4d123 RBP: 0000000000000000 R08: 0000000000000001 R09: ffffed11c7e1835d R10: ffff888e3f0c1aeb R11: 0000000000000000 R12: 0000000000000000 R13: ffff888100d20000 R14: dffffc0000000000 R15: 0000000000000000 ? ct_kernel_exit.constprop.0 (kernel/context_tracking.c:148) ? cpuidle_idle_call (kernel/sched/idle.c:186) default_idle_call (./include/linux/cpuidle.h:143 kernel/sched/idle.c:118) cpuidle_idle_call (kernel/sched/idle.c:186) ? __pfx_cpuidle_idle_call (kernel/sched/idle.c:168) ? lock_release (kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5848) ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4347 kernel/locking/lockdep.c:4406) ? tsc_verify_tsc_adjust (arch/x86/kernel/tsc_sync.c:59) do_idle (kernel/sched/idle.c:326) cpu_startup_entry (kernel/sched/idle.c:423 (discriminator 1)) start_secondary (arch/x86/kernel/smpboot.c:202 arch/x86/kernel/smpboot.c:282) ? __pfx_start_secondary (arch/x86/kernel/smpboot.c:232) ? soft_restart_cpu (arch/x86/kernel/head_64.S:452) common_startup_64 (arch/x86/kernel/head_64.S:414)  </TASK> Dec 03 05:46:18 kernel: Allocated by task 12184: kasan_save_stack (mm/kasan/common.c:48) kasan_save_track (./arch/x86/include/asm/current.h:49 mm/kasan/common.c:60 mm/kasan/common.c:69) __kasan_slab_alloc (mm/kasan/common.c:319 mm/kasan/common.c:345) kmem_cache_alloc_noprof (mm/slub.c:4085 mm/slub.c:4134 mm/slub.c:4141) copy_net_ns (net/core/net_namespace.c:421 net/core/net_namespace.c:480) create_new_namespaces ---truncated---",
                                "cve_priority": "high",
                                "cve_public_date": "2024-12-27 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-35864",
                                "url": "https://ubuntu.com/security/CVE-2024-35864",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: smb: client: fix potential UAF in smb2_is_valid_lease_break() Skip sessions that are being teared down (status == SES_EXITING) to avoid UAF.",
                                "cve_priority": "high",
                                "cve_public_date": "2024-05-19 09:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-26928",
                                "url": "https://ubuntu.com/security/CVE-2024-26928",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: smb: client: fix potential UAF in cifs_debug_files_proc_show() Skip sessions that are being teared down (status == SES_EXITING) to avoid UAF.",
                                "cve_priority": "high",
                                "cve_public_date": "2024-04-28 12:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * focal/linux: 5.4.0-214.234 -proposed tracker (LP: #2102635)",
                            "",
                            "  * CVE-2024-50256",
                            "    - netfilter: nf_reject_ipv6: fix potential crash in nf_send_reset6()",
                            "",
                            "  * CVE-2025-21702",
                            "    - pfifo_tail_enqueue: Drop new packet when sch->limit == 0",
                            "",
                            "  * CVE-2025-21703",
                            "    - netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()",
                            "",
                            "  * CVE-2024-26915",
                            "    - drm/amdgpu: Reset IH OVERFLOW_CLEAR bit",
                            "",
                            "  * CVE-2025-21700",
                            "    - net: sched: Disallow replacing of child qdisc from one parent to another",
                            "",
                            "  * CVE-2024-46826",
                            "    - ELF: fix kernel.randomize_va_space double read",
                            "",
                            "  * CVE-2024-56651",
                            "    - can: hi311x: hi3110_can_ist(): fix potential use-after-free",
                            "",
                            "  * CVE-2024-53237",
                            "    - driver core: Introduce device_find_any_child() helper",
                            "    - Bluetooth: fix use-after-free in device_for_each_child()",
                            "",
                            "  * CVE-2024-35958",
                            "    - net: ena: Fix incorrect descriptor free behavior",
                            "",
                            "  * CVE-2024-49974",
                            "    - NFSD: Limit the number of concurrent async COPY operations",
                            "",
                            "  * CVE-2021-47119",
                            "    - ext4: fix memory leak in ext4_fill_super",
                            "",
                            "  * CVE-2024-56658",
                            "    - net: defer final 'struct net' free in netns dismantle",
                            "",
                            "  * CVE-2024-35864",
                            "    - smb: client: fix potential UAF in smb2_is_valid_lease_break()",
                            "",
                            "  * CVE-2024-35864/CVE-2024-26928",
                            "    - smb: client: fix potential UAF in cifs_debug_files_proc_show()",
                            ""
                        ],
                        "package": "linux",
                        "version": "5.4.0-214.234",
                        "urgency": "medium",
                        "distributions": "focal",
                        "launchpad_bugs_fixed": [
                            2102635
                        ],
                        "author": "Stefan Bader <stefan.bader@canonical.com>",
                        "date": "Fri, 14 Mar 2025 15:42:15 +0100"
                    }
                ],
                "notes": "linux-headers-5.4.0-214 version '5.4.0-214.234' (source package linux version '5.4.0-214.234') was added. linux-headers-5.4.0-214 version '5.4.0-214.234' has the same source package name, linux, as removed package linux-headers-5.4.0-212. As such we can use the source package version of the removed package, '5.4.0-212.232', 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-headers-5.4.0-214-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.4.0-212.232",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.4.0-214.234",
                    "version": "5.4.0-214.234"
                },
                "cves": [
                    {
                        "cve": "CVE-2024-50256",
                        "url": "https://ubuntu.com/security/CVE-2024-50256",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_reject_ipv6: fix potential crash in nf_send_reset6()  I got a syzbot report without a repro [1] crashing in nf_send_reset6()  I think the issue is that dev->hard_header_len is zero, and we attempt later to push an Ethernet header.  Use LL_MAX_HEADER, as other functions in net/ipv6/netfilter/nf_reject_ipv6.c.  [1]  skbuff: skb_under_panic: text:ffffffff89b1d008 len:74 put:14 head:ffff88803123aa00 data:ffff88803123a9f2 tail:0x3c end:0x140 dev:syz_tun  kernel BUG at net/core/skbuff.c:206 ! Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI CPU: 0 UID: 0 PID: 7373 Comm: syz.1.568 Not tainted 6.12.0-rc2-syzkaller-00631-g6d858708d465 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024  RIP: 0010:skb_panic net/core/skbuff.c:206 [inline]  RIP: 0010:skb_under_panic+0x14b/0x150 net/core/skbuff.c:216 Code: 0d 8d 48 c7 c6 60 a6 29 8e 48 8b 54 24 08 8b 0c 24 44 8b 44 24 04 4d 89 e9 50 41 54 41 57 41 56 e8 ba 30 38 02 48 83 c4 20 90 <0f> 0b 0f 1f 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 RSP: 0018:ffffc900045269b0 EFLAGS: 00010282 RAX: 0000000000000088 RBX: dffffc0000000000 RCX: cd66dacdc5d8e800 RDX: 0000000000000000 RSI: 0000000000000200 RDI: 0000000000000000 RBP: ffff88802d39a3d0 R08: ffffffff8174afec R09: 1ffff920008a4ccc R10: dffffc0000000000 R11: fffff520008a4ccd R12: 0000000000000140 R13: ffff88803123aa00 R14: ffff88803123a9f2 R15: 000000000000003c FS:  00007fdbee5ff6c0(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 000000005d322000 CR4: 00000000003526f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace:  <TASK>   skb_push+0xe5/0x100 net/core/skbuff.c:2636   eth_header+0x38/0x1f0 net/ethernet/eth.c:83   dev_hard_header include/linux/netdevice.h:3208 [inline]   nf_send_reset6+0xce6/0x1270 net/ipv6/netfilter/nf_reject_ipv6.c:358   nft_reject_inet_eval+0x3b9/0x690 net/netfilter/nft_reject_inet.c:48   expr_call_ops_eval net/netfilter/nf_tables_core.c:240 [inline]   nft_do_chain+0x4ad/0x1da0 net/netfilter/nf_tables_core.c:288   nft_do_chain_inet+0x418/0x6b0 net/netfilter/nft_chain_filter.c:161   nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]   nf_hook_slow+0xc3/0x220 net/netfilter/core.c:626   nf_hook include/linux/netfilter.h:269 [inline]   NF_HOOK include/linux/netfilter.h:312 [inline]   br_nf_pre_routing_ipv6+0x63e/0x770 net/bridge/br_netfilter_ipv6.c:184   nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]   nf_hook_bridge_pre net/bridge/br_input.c:277 [inline]   br_handle_frame+0x9fd/0x1530 net/bridge/br_input.c:424   __netif_receive_skb_core+0x13e8/0x4570 net/core/dev.c:5562   __netif_receive_skb_one_core net/core/dev.c:5666 [inline]   __netif_receive_skb+0x12f/0x650 net/core/dev.c:5781   netif_receive_skb_internal net/core/dev.c:5867 [inline]   netif_receive_skb+0x1e8/0x890 net/core/dev.c:5926   tun_rx_batched+0x1b7/0x8f0 drivers/net/tun.c:1550   tun_get_user+0x3056/0x47e0 drivers/net/tun.c:2007   tun_chr_write_iter+0x10d/0x1f0 drivers/net/tun.c:2053   new_sync_write fs/read_write.c:590 [inline]   vfs_write+0xa6d/0xc90 fs/read_write.c:683   ksys_write+0x183/0x2b0 fs/read_write.c:736   do_syscall_x64 arch/x86/entry/common.c:52 [inline]   do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fdbeeb7d1ff Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 c9 8d 02 00 48 8b 54 24 18 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 31 44 89 c7 48 89 44 24 08 e8 1c 8e 02 00 48 RSP: 002b:00007fdbee5ff000 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fdbeed36058 RCX: 00007fdbeeb7d1ff RDX: 000000000000008e RSI: 0000000020000040 RDI: 00000000000000c8 RBP: 00007fdbeebf12be R08: 0000000 ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-11-09 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-21702",
                        "url": "https://ubuntu.com/security/CVE-2025-21702",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pfifo_tail_enqueue: Drop new packet when sch->limit == 0  Expected behaviour: In case we reach scheduler's limit, pfifo_tail_enqueue() will drop a packet in scheduler's queue and decrease scheduler's qlen by one. Then, pfifo_tail_enqueue() enqueue new packet and increase scheduler's qlen by one. Finally, pfifo_tail_enqueue() return `NET_XMIT_CN` status code.  Weird behaviour: In case we set `sch->limit == 0` and trigger pfifo_tail_enqueue() on a scheduler that has no packet, the 'drop a packet' step will do nothing. This means the scheduler's qlen still has value equal 0. Then, we continue to enqueue new packet and increase scheduler's qlen by one. In summary, we can leverage pfifo_tail_enqueue() to increase qlen by one and return `NET_XMIT_CN` status code.  The problem is: Let's say we have two qdiscs: Qdisc_A and Qdisc_B.  - Qdisc_A's type must have '->graft()' function to create parent/child relationship.    Let's say Qdisc_A's type is `hfsc`. Enqueue packet to this qdisc will trigger `hfsc_enqueue`.  - Qdisc_B's type is pfifo_head_drop. Enqueue packet to this qdisc will trigger `pfifo_tail_enqueue`.  - Qdisc_B is configured to have `sch->limit == 0`.  - Qdisc_A is configured to route the enqueued's packet to Qdisc_B.  Enqueue packet through Qdisc_A will lead to:  - hfsc_enqueue(Qdisc_A) -> pfifo_tail_enqueue(Qdisc_B)  - Qdisc_B->q.qlen += 1  - pfifo_tail_enqueue() return `NET_XMIT_CN`  - hfsc_enqueue() check for `NET_XMIT_SUCCESS` and see `NET_XMIT_CN` => hfsc_enqueue() don't increase qlen of Qdisc_A.  The whole process lead to a situation where Qdisc_A->q.qlen == 0 and Qdisc_B->q.qlen == 1. Replace 'hfsc' with other type (for example: 'drr') still lead to the same problem. This violate the design where parent's qlen should equal to the sum of its childrens'qlen.  Bug impact: This issue can be used for user->kernel privilege escalation when it is reachable.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-18 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-21703",
                        "url": "https://ubuntu.com/security/CVE-2025-21703",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()  qdisc_tree_reduce_backlog() notifies parent qdisc only if child qdisc becomes empty, therefore we need to reduce the backlog of the child qdisc before calling it. Otherwise it would miss the opportunity to call cops->qlen_notify(), in the case of DRR, it resulted in UAF since DRR uses ->qlen_notify() to maintain its active list.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-18 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-26915",
                        "url": "https://ubuntu.com/security/CVE-2024-26915",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: Reset IH OVERFLOW_CLEAR bit Allows us to detect subsequent IH ring buffer overflows as well.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-04-17 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-21700",
                        "url": "https://ubuntu.com/security/CVE-2025-21700",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: Disallow replacing of child qdisc from one parent to another  Lion Ackermann was able to create a UAF which can be abused for privilege escalation with the following script  Step 1. create root qdisc tc qdisc add dev lo root handle 1:0 drr  step2. a class for packet aggregation do demonstrate uaf tc class add dev lo classid 1:1 drr  step3. a class for nesting tc class add dev lo classid 1:2 drr  step4. a class to graft qdisc to tc class add dev lo classid 1:3 drr  step5. tc qdisc add dev lo parent 1:1 handle 2:0 plug limit 1024  step6. tc qdisc add dev lo parent 1:2 handle 3:0 drr  step7. tc class add dev lo classid 3:1 drr  step 8. tc qdisc add dev lo parent 3:1 handle 4:0 pfifo  step 9. Display the class/qdisc layout  tc class ls dev lo  class drr 1:1 root leaf 2: quantum 64Kb  class drr 1:2 root leaf 3: quantum 64Kb  class drr 3:1 root leaf 4: quantum 64Kb  tc qdisc ls  qdisc drr 1: dev lo root refcnt 2  qdisc plug 2: dev lo parent 1:1  qdisc pfifo 4: dev lo parent 3:1 limit 1000p  qdisc drr 3: dev lo parent 1:2  step10. trigger the bug <=== prevented by this patch tc qdisc replace dev lo parent 1:3 handle 4:0  step 11. Redisplay again the qdiscs/classes  tc class ls dev lo  class drr 1:1 root leaf 2: quantum 64Kb  class drr 1:2 root leaf 3: quantum 64Kb  class drr 1:3 root leaf 4: quantum 64Kb  class drr 3:1 root leaf 4: quantum 64Kb  tc qdisc ls  qdisc drr 1: dev lo root refcnt 2  qdisc plug 2: dev lo parent 1:1  qdisc pfifo 4: dev lo parent 3:1 refcnt 2 limit 1000p  qdisc drr 3: dev lo parent 1:2  Observe that a) parent for 4:0 does not change despite the replace request. There can only be one parent.  b) refcount has gone up by two for 4:0 and c) both class 1:3 and 3:1 are pointing to it.  Step 12.  send one packet to plug echo \"\" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10001)) step13.  send one packet to the grafted fifo echo \"\" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10003))  step14. lets trigger the uaf tc class delete dev lo classid 1:3 tc class delete dev lo classid 1:1  The semantics of \"replace\" is for a del/add _on the same node_ and not a delete from one node(3:1) and add to another node (1:3) as in step10. While we could \"fix\" with a more complex approach there could be consequences to expectations so the patch takes the preventive approach of \"disallow such config\".  Joint work with Lion Ackermann <nnamrec@gmail.com>",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-13 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-46826",
                        "url": "https://ubuntu.com/security/CVE-2024-46826",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ELF: fix kernel.randomize_va_space double read  ELF loader uses \"randomize_va_space\" twice. It is sysctl and can change at any moment, so 2 loads could see 2 different values in theory with unpredictable consequences.  Issue exactly one load for consistent value across one exec.",
                        "cve_priority": "low",
                        "cve_public_date": "2024-09-27 13:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-56651",
                        "url": "https://ubuntu.com/security/CVE-2024-56651",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: hi311x: hi3110_can_ist(): fix potential use-after-free  The commit a22bd630cfff (\"can: hi311x: do not report txerr and rxerr during bus-off\") removed the reporting of rxerr and txerr even in case of correct operation (i. e. not bus-off).  The error count information added to the CAN frame after netif_rx() is a potential use after free, since there is no guarantee that the skb is in the same state. It might be freed or reused.  Fix the issue by postponing the netif_rx() call in case of txerr and rxerr reporting.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-12-27 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-53237",
                        "url": "https://ubuntu.com/security/CVE-2024-53237",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: fix use-after-free in device_for_each_child()  Syzbot has reported the following KASAN splat:  BUG: KASAN: slab-use-after-free in device_for_each_child+0x18f/0x1a0 Read of size 8 at addr ffff88801f605308 by task kbnepd bnep0/4980  CPU: 0 UID: 0 PID: 4980 Comm: kbnepd bnep0 Not tainted 6.12.0-rc4-00161-gae90f6a6170d #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014 Call Trace:  <TASK>  dump_stack_lvl+0x100/0x190  ? device_for_each_child+0x18f/0x1a0  print_report+0x13a/0x4cb  ? __virt_addr_valid+0x5e/0x590  ? __phys_addr+0xc6/0x150  ? device_for_each_child+0x18f/0x1a0  kasan_report+0xda/0x110  ? device_for_each_child+0x18f/0x1a0  ? __pfx_dev_memalloc_noio+0x10/0x10  device_for_each_child+0x18f/0x1a0  ? __pfx_device_for_each_child+0x10/0x10  pm_runtime_set_memalloc_noio+0xf2/0x180  netdev_unregister_kobject+0x1ed/0x270  unregister_netdevice_many_notify+0x123c/0x1d80  ? __mutex_trylock_common+0xde/0x250  ? __pfx_unregister_netdevice_many_notify+0x10/0x10  ? trace_contention_end+0xe6/0x140  ? __mutex_lock+0x4e7/0x8f0  ? __pfx_lock_acquire.part.0+0x10/0x10  ? rcu_is_watching+0x12/0xc0  ? unregister_netdev+0x12/0x30  unregister_netdevice_queue+0x30d/0x3f0  ? __pfx_unregister_netdevice_queue+0x10/0x10  ? __pfx_down_write+0x10/0x10  unregister_netdev+0x1c/0x30  bnep_session+0x1fb3/0x2ab0  ? __pfx_bnep_session+0x10/0x10  ? __pfx_lock_release+0x10/0x10  ? __pfx_woken_wake_function+0x10/0x10  ? __kthread_parkme+0x132/0x200  ? __pfx_bnep_session+0x10/0x10  ? kthread+0x13a/0x370  ? __pfx_bnep_session+0x10/0x10  kthread+0x2b7/0x370  ? __pfx_kthread+0x10/0x10  ret_from_fork+0x48/0x80  ? __pfx_kthread+0x10/0x10  ret_from_fork_asm+0x1a/0x30  </TASK>  Allocated by task 4974:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0xaa/0xb0  __kmalloc_noprof+0x1d1/0x440  hci_alloc_dev_priv+0x1d/0x2820  __vhci_create_device+0xef/0x7d0  vhci_write+0x2c7/0x480  vfs_write+0x6a0/0xfc0  ksys_write+0x12f/0x260  do_syscall_64+0xc7/0x250  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 4979:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  kasan_save_free_info+0x3b/0x60  __kasan_slab_free+0x4f/0x70  kfree+0x141/0x490  hci_release_dev+0x4d9/0x600  bt_host_release+0x6a/0xb0  device_release+0xa4/0x240  kobject_put+0x1ec/0x5a0  put_device+0x1f/0x30  vhci_release+0x81/0xf0  __fput+0x3f6/0xb30  task_work_run+0x151/0x250  do_exit+0xa79/0x2c30  do_group_exit+0xd5/0x2a0  get_signal+0x1fcd/0x2210  arch_do_signal_or_restart+0x93/0x780  syscall_exit_to_user_mode+0x140/0x290  do_syscall_64+0xd4/0x250  entry_SYSCALL_64_after_hwframe+0x77/0x7f  In 'hci_conn_del_sysfs()', 'device_unregister()' may be called when an underlying (kobject) reference counter is greater than 1. This means that reparenting (happened when the device is actually freed) is delayed and, during that delay, parent controller device (hciX) may be deleted. Since the latter may create a dangling pointer to freed parent, avoid that scenario by reparenting to NULL explicitly.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-12-27 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-35958",
                        "url": "https://ubuntu.com/security/CVE-2024-35958",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: net: ena: Fix incorrect descriptor free behavior ENA has two types of TX queues: - queues which only process TX packets arriving from the network stack - queues which only process TX packets forwarded to it by XDP_REDIRECT or XDP_TX instructions The ena_free_tx_bufs() cycles through all descriptors in a TX queue and unmaps + frees every descriptor that hasn't been acknowledged yet by the device (uncompleted TX transactions). The function assumes that the processed TX queue is necessarily from the first category listed above and ends up using napi_consume_skb() for descriptors belonging to an XDP specific queue. This patch solves a bug in which, in case of a VF reset, the descriptors aren't freed correctly, leading to crashes.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-05-20 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-49974",
                        "url": "https://ubuntu.com/security/CVE-2024-49974",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: Limit the number of concurrent async COPY operations  Nothing appears to limit the number of concurrent async COPY operations that clients can start. In addition, AFAICT each async COPY can copy an unlimited number of 4MB chunks, so can run for a long time. Thus IMO async COPY can become a DoS vector.  Add a restriction mechanism that bounds the number of concurrent background COPY operations. Start simple and try to be fair -- this patch implements a per-namespace limit.  An async COPY request that occurs while this limit is exceeded gets NFS4ERR_DELAY. The requesting client can choose to send the request again after a delay or fall back to a traditional read/write style copy.  If there is need to make the mechanism more sophisticated, we can visit that in future patches.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-10-21 18:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2021-47119",
                        "url": "https://ubuntu.com/security/CVE-2021-47119",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: ext4: fix memory leak in ext4_fill_super Buffer head references must be released before calling kill_bdev(); otherwise the buffer head (and its page referenced by b_data) will not be freed by kill_bdev, and subsequently that bh will be leaked. If blocksizes differ, sb_set_blocksize() will kill current buffers and page cache by using kill_bdev(). And then super block will be reread again but using correct blocksize this time. sb_set_blocksize() didn't fully free superblock page and buffer head, and being busy, they were not freed and instead leaked. This can easily be reproduced by calling an infinite loop of: systemctl start <ext4_on_lvm>.mount, and systemctl stop <ext4_on_lvm>.mount ... since systemd creates a cgroup for each slice which it mounts, and the bh leak get amplified by a dying memory cgroup that also never gets freed, and memory consumption is much more easily noticed.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-03-15 21:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-56658",
                        "url": "https://ubuntu.com/security/CVE-2024-56658",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: defer final 'struct net' free in netns dismantle  Ilya reported a slab-use-after-free in dst_destroy [1]  Issue is in xfrm6_net_init() and xfrm4_net_init() :  They copy xfrm[46]_dst_ops_template into net->xfrm.xfrm[46]_dst_ops.  But net structure might be freed before all the dst callbacks are called. So when dst_destroy() calls later :  if (dst->ops->destroy)     dst->ops->destroy(dst);  dst->ops points to the old net->xfrm.xfrm[46]_dst_ops, which has been freed.  See a relevant issue fixed in :  ac888d58869b (\"net: do not delay dst_entries_add() in dst_release()\")  A fix is to queue the 'struct net' to be freed after one another cleanup_net() round (and existing rcu_barrier())  [1]  BUG: KASAN: slab-use-after-free in dst_destroy (net/core/dst.c:112) Read of size 8 at addr ffff8882137ccab0 by task swapper/37/0 Dec 03 05:46:18 kernel: CPU: 37 UID: 0 PID: 0 Comm: swapper/37 Kdump: loaded Not tainted 6.12.0 #67 Hardware name: Red Hat KVM/RHEL, BIOS 1.16.1-1.el9 04/01/2014 Call Trace:  <IRQ> dump_stack_lvl (lib/dump_stack.c:124) print_address_description.constprop.0 (mm/kasan/report.c:378) ? dst_destroy (net/core/dst.c:112) print_report (mm/kasan/report.c:489) ? dst_destroy (net/core/dst.c:112) ? kasan_addr_to_slab (mm/kasan/common.c:37) kasan_report (mm/kasan/report.c:603) ? dst_destroy (net/core/dst.c:112) ? rcu_do_batch (kernel/rcu/tree.c:2567) dst_destroy (net/core/dst.c:112) rcu_do_batch (kernel/rcu/tree.c:2567) ? __pfx_rcu_do_batch (kernel/rcu/tree.c:2491) ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4339 kernel/locking/lockdep.c:4406) rcu_core (kernel/rcu/tree.c:2825) handle_softirqs (kernel/softirq.c:554) __irq_exit_rcu (kernel/softirq.c:589 kernel/softirq.c:428 kernel/softirq.c:637) irq_exit_rcu (kernel/softirq.c:651) sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1049 arch/x86/kernel/apic/apic.c:1049)  </IRQ>  <TASK> asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:702) RIP: 0010:default_idle (./arch/x86/include/asm/irqflags.h:37 ./arch/x86/include/asm/irqflags.h:92 arch/x86/kernel/process.c:743) Code: 00 4d 29 c8 4c 01 c7 4c 29 c2 e9 6e ff ff ff 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 66 90 0f 00 2d c7 c9 27 00 fb f4 <fa> c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 90 RSP: 0018:ffff888100d2fe00 EFLAGS: 00000246 RAX: 00000000001870ed RBX: 1ffff110201a5fc2 RCX: ffffffffb61a3e46 RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffffb3d4d123 RBP: 0000000000000000 R08: 0000000000000001 R09: ffffed11c7e1835d R10: ffff888e3f0c1aeb R11: 0000000000000000 R12: 0000000000000000 R13: ffff888100d20000 R14: dffffc0000000000 R15: 0000000000000000 ? ct_kernel_exit.constprop.0 (kernel/context_tracking.c:148) ? cpuidle_idle_call (kernel/sched/idle.c:186) default_idle_call (./include/linux/cpuidle.h:143 kernel/sched/idle.c:118) cpuidle_idle_call (kernel/sched/idle.c:186) ? __pfx_cpuidle_idle_call (kernel/sched/idle.c:168) ? lock_release (kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5848) ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4347 kernel/locking/lockdep.c:4406) ? tsc_verify_tsc_adjust (arch/x86/kernel/tsc_sync.c:59) do_idle (kernel/sched/idle.c:326) cpu_startup_entry (kernel/sched/idle.c:423 (discriminator 1)) start_secondary (arch/x86/kernel/smpboot.c:202 arch/x86/kernel/smpboot.c:282) ? __pfx_start_secondary (arch/x86/kernel/smpboot.c:232) ? soft_restart_cpu (arch/x86/kernel/head_64.S:452) common_startup_64 (arch/x86/kernel/head_64.S:414)  </TASK> Dec 03 05:46:18 kernel: Allocated by task 12184: kasan_save_stack (mm/kasan/common.c:48) kasan_save_track (./arch/x86/include/asm/current.h:49 mm/kasan/common.c:60 mm/kasan/common.c:69) __kasan_slab_alloc (mm/kasan/common.c:319 mm/kasan/common.c:345) kmem_cache_alloc_noprof (mm/slub.c:4085 mm/slub.c:4134 mm/slub.c:4141) copy_net_ns (net/core/net_namespace.c:421 net/core/net_namespace.c:480) create_new_namespaces ---truncated---",
                        "cve_priority": "high",
                        "cve_public_date": "2024-12-27 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-35864",
                        "url": "https://ubuntu.com/security/CVE-2024-35864",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: smb: client: fix potential UAF in smb2_is_valid_lease_break() Skip sessions that are being teared down (status == SES_EXITING) to avoid UAF.",
                        "cve_priority": "high",
                        "cve_public_date": "2024-05-19 09:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-26928",
                        "url": "https://ubuntu.com/security/CVE-2024-26928",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: smb: client: fix potential UAF in cifs_debug_files_proc_show() Skip sessions that are being teared down (status == SES_EXITING) to avoid UAF.",
                        "cve_priority": "high",
                        "cve_public_date": "2024-04-28 12:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2102635
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2024-50256",
                                "url": "https://ubuntu.com/security/CVE-2024-50256",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_reject_ipv6: fix potential crash in nf_send_reset6()  I got a syzbot report without a repro [1] crashing in nf_send_reset6()  I think the issue is that dev->hard_header_len is zero, and we attempt later to push an Ethernet header.  Use LL_MAX_HEADER, as other functions in net/ipv6/netfilter/nf_reject_ipv6.c.  [1]  skbuff: skb_under_panic: text:ffffffff89b1d008 len:74 put:14 head:ffff88803123aa00 data:ffff88803123a9f2 tail:0x3c end:0x140 dev:syz_tun  kernel BUG at net/core/skbuff.c:206 ! Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI CPU: 0 UID: 0 PID: 7373 Comm: syz.1.568 Not tainted 6.12.0-rc2-syzkaller-00631-g6d858708d465 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024  RIP: 0010:skb_panic net/core/skbuff.c:206 [inline]  RIP: 0010:skb_under_panic+0x14b/0x150 net/core/skbuff.c:216 Code: 0d 8d 48 c7 c6 60 a6 29 8e 48 8b 54 24 08 8b 0c 24 44 8b 44 24 04 4d 89 e9 50 41 54 41 57 41 56 e8 ba 30 38 02 48 83 c4 20 90 <0f> 0b 0f 1f 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 RSP: 0018:ffffc900045269b0 EFLAGS: 00010282 RAX: 0000000000000088 RBX: dffffc0000000000 RCX: cd66dacdc5d8e800 RDX: 0000000000000000 RSI: 0000000000000200 RDI: 0000000000000000 RBP: ffff88802d39a3d0 R08: ffffffff8174afec R09: 1ffff920008a4ccc R10: dffffc0000000000 R11: fffff520008a4ccd R12: 0000000000000140 R13: ffff88803123aa00 R14: ffff88803123a9f2 R15: 000000000000003c FS:  00007fdbee5ff6c0(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 000000005d322000 CR4: 00000000003526f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace:  <TASK>   skb_push+0xe5/0x100 net/core/skbuff.c:2636   eth_header+0x38/0x1f0 net/ethernet/eth.c:83   dev_hard_header include/linux/netdevice.h:3208 [inline]   nf_send_reset6+0xce6/0x1270 net/ipv6/netfilter/nf_reject_ipv6.c:358   nft_reject_inet_eval+0x3b9/0x690 net/netfilter/nft_reject_inet.c:48   expr_call_ops_eval net/netfilter/nf_tables_core.c:240 [inline]   nft_do_chain+0x4ad/0x1da0 net/netfilter/nf_tables_core.c:288   nft_do_chain_inet+0x418/0x6b0 net/netfilter/nft_chain_filter.c:161   nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]   nf_hook_slow+0xc3/0x220 net/netfilter/core.c:626   nf_hook include/linux/netfilter.h:269 [inline]   NF_HOOK include/linux/netfilter.h:312 [inline]   br_nf_pre_routing_ipv6+0x63e/0x770 net/bridge/br_netfilter_ipv6.c:184   nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]   nf_hook_bridge_pre net/bridge/br_input.c:277 [inline]   br_handle_frame+0x9fd/0x1530 net/bridge/br_input.c:424   __netif_receive_skb_core+0x13e8/0x4570 net/core/dev.c:5562   __netif_receive_skb_one_core net/core/dev.c:5666 [inline]   __netif_receive_skb+0x12f/0x650 net/core/dev.c:5781   netif_receive_skb_internal net/core/dev.c:5867 [inline]   netif_receive_skb+0x1e8/0x890 net/core/dev.c:5926   tun_rx_batched+0x1b7/0x8f0 drivers/net/tun.c:1550   tun_get_user+0x3056/0x47e0 drivers/net/tun.c:2007   tun_chr_write_iter+0x10d/0x1f0 drivers/net/tun.c:2053   new_sync_write fs/read_write.c:590 [inline]   vfs_write+0xa6d/0xc90 fs/read_write.c:683   ksys_write+0x183/0x2b0 fs/read_write.c:736   do_syscall_x64 arch/x86/entry/common.c:52 [inline]   do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fdbeeb7d1ff Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 c9 8d 02 00 48 8b 54 24 18 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 31 44 89 c7 48 89 44 24 08 e8 1c 8e 02 00 48 RSP: 002b:00007fdbee5ff000 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fdbeed36058 RCX: 00007fdbeeb7d1ff RDX: 000000000000008e RSI: 0000000020000040 RDI: 00000000000000c8 RBP: 00007fdbeebf12be R08: 0000000 ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-11-09 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-21702",
                                "url": "https://ubuntu.com/security/CVE-2025-21702",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pfifo_tail_enqueue: Drop new packet when sch->limit == 0  Expected behaviour: In case we reach scheduler's limit, pfifo_tail_enqueue() will drop a packet in scheduler's queue and decrease scheduler's qlen by one. Then, pfifo_tail_enqueue() enqueue new packet and increase scheduler's qlen by one. Finally, pfifo_tail_enqueue() return `NET_XMIT_CN` status code.  Weird behaviour: In case we set `sch->limit == 0` and trigger pfifo_tail_enqueue() on a scheduler that has no packet, the 'drop a packet' step will do nothing. This means the scheduler's qlen still has value equal 0. Then, we continue to enqueue new packet and increase scheduler's qlen by one. In summary, we can leverage pfifo_tail_enqueue() to increase qlen by one and return `NET_XMIT_CN` status code.  The problem is: Let's say we have two qdiscs: Qdisc_A and Qdisc_B.  - Qdisc_A's type must have '->graft()' function to create parent/child relationship.    Let's say Qdisc_A's type is `hfsc`. Enqueue packet to this qdisc will trigger `hfsc_enqueue`.  - Qdisc_B's type is pfifo_head_drop. Enqueue packet to this qdisc will trigger `pfifo_tail_enqueue`.  - Qdisc_B is configured to have `sch->limit == 0`.  - Qdisc_A is configured to route the enqueued's packet to Qdisc_B.  Enqueue packet through Qdisc_A will lead to:  - hfsc_enqueue(Qdisc_A) -> pfifo_tail_enqueue(Qdisc_B)  - Qdisc_B->q.qlen += 1  - pfifo_tail_enqueue() return `NET_XMIT_CN`  - hfsc_enqueue() check for `NET_XMIT_SUCCESS` and see `NET_XMIT_CN` => hfsc_enqueue() don't increase qlen of Qdisc_A.  The whole process lead to a situation where Qdisc_A->q.qlen == 0 and Qdisc_B->q.qlen == 1. Replace 'hfsc' with other type (for example: 'drr') still lead to the same problem. This violate the design where parent's qlen should equal to the sum of its childrens'qlen.  Bug impact: This issue can be used for user->kernel privilege escalation when it is reachable.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-18 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-21703",
                                "url": "https://ubuntu.com/security/CVE-2025-21703",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()  qdisc_tree_reduce_backlog() notifies parent qdisc only if child qdisc becomes empty, therefore we need to reduce the backlog of the child qdisc before calling it. Otherwise it would miss the opportunity to call cops->qlen_notify(), in the case of DRR, it resulted in UAF since DRR uses ->qlen_notify() to maintain its active list.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-18 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-26915",
                                "url": "https://ubuntu.com/security/CVE-2024-26915",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: Reset IH OVERFLOW_CLEAR bit Allows us to detect subsequent IH ring buffer overflows as well.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-04-17 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-21700",
                                "url": "https://ubuntu.com/security/CVE-2025-21700",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: Disallow replacing of child qdisc from one parent to another  Lion Ackermann was able to create a UAF which can be abused for privilege escalation with the following script  Step 1. create root qdisc tc qdisc add dev lo root handle 1:0 drr  step2. a class for packet aggregation do demonstrate uaf tc class add dev lo classid 1:1 drr  step3. a class for nesting tc class add dev lo classid 1:2 drr  step4. a class to graft qdisc to tc class add dev lo classid 1:3 drr  step5. tc qdisc add dev lo parent 1:1 handle 2:0 plug limit 1024  step6. tc qdisc add dev lo parent 1:2 handle 3:0 drr  step7. tc class add dev lo classid 3:1 drr  step 8. tc qdisc add dev lo parent 3:1 handle 4:0 pfifo  step 9. Display the class/qdisc layout  tc class ls dev lo  class drr 1:1 root leaf 2: quantum 64Kb  class drr 1:2 root leaf 3: quantum 64Kb  class drr 3:1 root leaf 4: quantum 64Kb  tc qdisc ls  qdisc drr 1: dev lo root refcnt 2  qdisc plug 2: dev lo parent 1:1  qdisc pfifo 4: dev lo parent 3:1 limit 1000p  qdisc drr 3: dev lo parent 1:2  step10. trigger the bug <=== prevented by this patch tc qdisc replace dev lo parent 1:3 handle 4:0  step 11. Redisplay again the qdiscs/classes  tc class ls dev lo  class drr 1:1 root leaf 2: quantum 64Kb  class drr 1:2 root leaf 3: quantum 64Kb  class drr 1:3 root leaf 4: quantum 64Kb  class drr 3:1 root leaf 4: quantum 64Kb  tc qdisc ls  qdisc drr 1: dev lo root refcnt 2  qdisc plug 2: dev lo parent 1:1  qdisc pfifo 4: dev lo parent 3:1 refcnt 2 limit 1000p  qdisc drr 3: dev lo parent 1:2  Observe that a) parent for 4:0 does not change despite the replace request. There can only be one parent.  b) refcount has gone up by two for 4:0 and c) both class 1:3 and 3:1 are pointing to it.  Step 12.  send one packet to plug echo \"\" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10001)) step13.  send one packet to the grafted fifo echo \"\" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10003))  step14. lets trigger the uaf tc class delete dev lo classid 1:3 tc class delete dev lo classid 1:1  The semantics of \"replace\" is for a del/add _on the same node_ and not a delete from one node(3:1) and add to another node (1:3) as in step10. While we could \"fix\" with a more complex approach there could be consequences to expectations so the patch takes the preventive approach of \"disallow such config\".  Joint work with Lion Ackermann <nnamrec@gmail.com>",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-13 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-46826",
                                "url": "https://ubuntu.com/security/CVE-2024-46826",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ELF: fix kernel.randomize_va_space double read  ELF loader uses \"randomize_va_space\" twice. It is sysctl and can change at any moment, so 2 loads could see 2 different values in theory with unpredictable consequences.  Issue exactly one load for consistent value across one exec.",
                                "cve_priority": "low",
                                "cve_public_date": "2024-09-27 13:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-56651",
                                "url": "https://ubuntu.com/security/CVE-2024-56651",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: hi311x: hi3110_can_ist(): fix potential use-after-free  The commit a22bd630cfff (\"can: hi311x: do not report txerr and rxerr during bus-off\") removed the reporting of rxerr and txerr even in case of correct operation (i. e. not bus-off).  The error count information added to the CAN frame after netif_rx() is a potential use after free, since there is no guarantee that the skb is in the same state. It might be freed or reused.  Fix the issue by postponing the netif_rx() call in case of txerr and rxerr reporting.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-12-27 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-53237",
                                "url": "https://ubuntu.com/security/CVE-2024-53237",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: fix use-after-free in device_for_each_child()  Syzbot has reported the following KASAN splat:  BUG: KASAN: slab-use-after-free in device_for_each_child+0x18f/0x1a0 Read of size 8 at addr ffff88801f605308 by task kbnepd bnep0/4980  CPU: 0 UID: 0 PID: 4980 Comm: kbnepd bnep0 Not tainted 6.12.0-rc4-00161-gae90f6a6170d #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014 Call Trace:  <TASK>  dump_stack_lvl+0x100/0x190  ? device_for_each_child+0x18f/0x1a0  print_report+0x13a/0x4cb  ? __virt_addr_valid+0x5e/0x590  ? __phys_addr+0xc6/0x150  ? device_for_each_child+0x18f/0x1a0  kasan_report+0xda/0x110  ? device_for_each_child+0x18f/0x1a0  ? __pfx_dev_memalloc_noio+0x10/0x10  device_for_each_child+0x18f/0x1a0  ? __pfx_device_for_each_child+0x10/0x10  pm_runtime_set_memalloc_noio+0xf2/0x180  netdev_unregister_kobject+0x1ed/0x270  unregister_netdevice_many_notify+0x123c/0x1d80  ? __mutex_trylock_common+0xde/0x250  ? __pfx_unregister_netdevice_many_notify+0x10/0x10  ? trace_contention_end+0xe6/0x140  ? __mutex_lock+0x4e7/0x8f0  ? __pfx_lock_acquire.part.0+0x10/0x10  ? rcu_is_watching+0x12/0xc0  ? unregister_netdev+0x12/0x30  unregister_netdevice_queue+0x30d/0x3f0  ? __pfx_unregister_netdevice_queue+0x10/0x10  ? __pfx_down_write+0x10/0x10  unregister_netdev+0x1c/0x30  bnep_session+0x1fb3/0x2ab0  ? __pfx_bnep_session+0x10/0x10  ? __pfx_lock_release+0x10/0x10  ? __pfx_woken_wake_function+0x10/0x10  ? __kthread_parkme+0x132/0x200  ? __pfx_bnep_session+0x10/0x10  ? kthread+0x13a/0x370  ? __pfx_bnep_session+0x10/0x10  kthread+0x2b7/0x370  ? __pfx_kthread+0x10/0x10  ret_from_fork+0x48/0x80  ? __pfx_kthread+0x10/0x10  ret_from_fork_asm+0x1a/0x30  </TASK>  Allocated by task 4974:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0xaa/0xb0  __kmalloc_noprof+0x1d1/0x440  hci_alloc_dev_priv+0x1d/0x2820  __vhci_create_device+0xef/0x7d0  vhci_write+0x2c7/0x480  vfs_write+0x6a0/0xfc0  ksys_write+0x12f/0x260  do_syscall_64+0xc7/0x250  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 4979:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  kasan_save_free_info+0x3b/0x60  __kasan_slab_free+0x4f/0x70  kfree+0x141/0x490  hci_release_dev+0x4d9/0x600  bt_host_release+0x6a/0xb0  device_release+0xa4/0x240  kobject_put+0x1ec/0x5a0  put_device+0x1f/0x30  vhci_release+0x81/0xf0  __fput+0x3f6/0xb30  task_work_run+0x151/0x250  do_exit+0xa79/0x2c30  do_group_exit+0xd5/0x2a0  get_signal+0x1fcd/0x2210  arch_do_signal_or_restart+0x93/0x780  syscall_exit_to_user_mode+0x140/0x290  do_syscall_64+0xd4/0x250  entry_SYSCALL_64_after_hwframe+0x77/0x7f  In 'hci_conn_del_sysfs()', 'device_unregister()' may be called when an underlying (kobject) reference counter is greater than 1. This means that reparenting (happened when the device is actually freed) is delayed and, during that delay, parent controller device (hciX) may be deleted. Since the latter may create a dangling pointer to freed parent, avoid that scenario by reparenting to NULL explicitly.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-12-27 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-35958",
                                "url": "https://ubuntu.com/security/CVE-2024-35958",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: net: ena: Fix incorrect descriptor free behavior ENA has two types of TX queues: - queues which only process TX packets arriving from the network stack - queues which only process TX packets forwarded to it by XDP_REDIRECT or XDP_TX instructions The ena_free_tx_bufs() cycles through all descriptors in a TX queue and unmaps + frees every descriptor that hasn't been acknowledged yet by the device (uncompleted TX transactions). The function assumes that the processed TX queue is necessarily from the first category listed above and ends up using napi_consume_skb() for descriptors belonging to an XDP specific queue. This patch solves a bug in which, in case of a VF reset, the descriptors aren't freed correctly, leading to crashes.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-05-20 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-49974",
                                "url": "https://ubuntu.com/security/CVE-2024-49974",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: Limit the number of concurrent async COPY operations  Nothing appears to limit the number of concurrent async COPY operations that clients can start. In addition, AFAICT each async COPY can copy an unlimited number of 4MB chunks, so can run for a long time. Thus IMO async COPY can become a DoS vector.  Add a restriction mechanism that bounds the number of concurrent background COPY operations. Start simple and try to be fair -- this patch implements a per-namespace limit.  An async COPY request that occurs while this limit is exceeded gets NFS4ERR_DELAY. The requesting client can choose to send the request again after a delay or fall back to a traditional read/write style copy.  If there is need to make the mechanism more sophisticated, we can visit that in future patches.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-10-21 18:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2021-47119",
                                "url": "https://ubuntu.com/security/CVE-2021-47119",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: ext4: fix memory leak in ext4_fill_super Buffer head references must be released before calling kill_bdev(); otherwise the buffer head (and its page referenced by b_data) will not be freed by kill_bdev, and subsequently that bh will be leaked. If blocksizes differ, sb_set_blocksize() will kill current buffers and page cache by using kill_bdev(). And then super block will be reread again but using correct blocksize this time. sb_set_blocksize() didn't fully free superblock page and buffer head, and being busy, they were not freed and instead leaked. This can easily be reproduced by calling an infinite loop of: systemctl start <ext4_on_lvm>.mount, and systemctl stop <ext4_on_lvm>.mount ... since systemd creates a cgroup for each slice which it mounts, and the bh leak get amplified by a dying memory cgroup that also never gets freed, and memory consumption is much more easily noticed.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-03-15 21:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-56658",
                                "url": "https://ubuntu.com/security/CVE-2024-56658",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: defer final 'struct net' free in netns dismantle  Ilya reported a slab-use-after-free in dst_destroy [1]  Issue is in xfrm6_net_init() and xfrm4_net_init() :  They copy xfrm[46]_dst_ops_template into net->xfrm.xfrm[46]_dst_ops.  But net structure might be freed before all the dst callbacks are called. So when dst_destroy() calls later :  if (dst->ops->destroy)     dst->ops->destroy(dst);  dst->ops points to the old net->xfrm.xfrm[46]_dst_ops, which has been freed.  See a relevant issue fixed in :  ac888d58869b (\"net: do not delay dst_entries_add() in dst_release()\")  A fix is to queue the 'struct net' to be freed after one another cleanup_net() round (and existing rcu_barrier())  [1]  BUG: KASAN: slab-use-after-free in dst_destroy (net/core/dst.c:112) Read of size 8 at addr ffff8882137ccab0 by task swapper/37/0 Dec 03 05:46:18 kernel: CPU: 37 UID: 0 PID: 0 Comm: swapper/37 Kdump: loaded Not tainted 6.12.0 #67 Hardware name: Red Hat KVM/RHEL, BIOS 1.16.1-1.el9 04/01/2014 Call Trace:  <IRQ> dump_stack_lvl (lib/dump_stack.c:124) print_address_description.constprop.0 (mm/kasan/report.c:378) ? dst_destroy (net/core/dst.c:112) print_report (mm/kasan/report.c:489) ? dst_destroy (net/core/dst.c:112) ? kasan_addr_to_slab (mm/kasan/common.c:37) kasan_report (mm/kasan/report.c:603) ? dst_destroy (net/core/dst.c:112) ? rcu_do_batch (kernel/rcu/tree.c:2567) dst_destroy (net/core/dst.c:112) rcu_do_batch (kernel/rcu/tree.c:2567) ? __pfx_rcu_do_batch (kernel/rcu/tree.c:2491) ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4339 kernel/locking/lockdep.c:4406) rcu_core (kernel/rcu/tree.c:2825) handle_softirqs (kernel/softirq.c:554) __irq_exit_rcu (kernel/softirq.c:589 kernel/softirq.c:428 kernel/softirq.c:637) irq_exit_rcu (kernel/softirq.c:651) sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1049 arch/x86/kernel/apic/apic.c:1049)  </IRQ>  <TASK> asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:702) RIP: 0010:default_idle (./arch/x86/include/asm/irqflags.h:37 ./arch/x86/include/asm/irqflags.h:92 arch/x86/kernel/process.c:743) Code: 00 4d 29 c8 4c 01 c7 4c 29 c2 e9 6e ff ff ff 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 66 90 0f 00 2d c7 c9 27 00 fb f4 <fa> c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 90 RSP: 0018:ffff888100d2fe00 EFLAGS: 00000246 RAX: 00000000001870ed RBX: 1ffff110201a5fc2 RCX: ffffffffb61a3e46 RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffffb3d4d123 RBP: 0000000000000000 R08: 0000000000000001 R09: ffffed11c7e1835d R10: ffff888e3f0c1aeb R11: 0000000000000000 R12: 0000000000000000 R13: ffff888100d20000 R14: dffffc0000000000 R15: 0000000000000000 ? ct_kernel_exit.constprop.0 (kernel/context_tracking.c:148) ? cpuidle_idle_call (kernel/sched/idle.c:186) default_idle_call (./include/linux/cpuidle.h:143 kernel/sched/idle.c:118) cpuidle_idle_call (kernel/sched/idle.c:186) ? __pfx_cpuidle_idle_call (kernel/sched/idle.c:168) ? lock_release (kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5848) ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4347 kernel/locking/lockdep.c:4406) ? tsc_verify_tsc_adjust (arch/x86/kernel/tsc_sync.c:59) do_idle (kernel/sched/idle.c:326) cpu_startup_entry (kernel/sched/idle.c:423 (discriminator 1)) start_secondary (arch/x86/kernel/smpboot.c:202 arch/x86/kernel/smpboot.c:282) ? __pfx_start_secondary (arch/x86/kernel/smpboot.c:232) ? soft_restart_cpu (arch/x86/kernel/head_64.S:452) common_startup_64 (arch/x86/kernel/head_64.S:414)  </TASK> Dec 03 05:46:18 kernel: Allocated by task 12184: kasan_save_stack (mm/kasan/common.c:48) kasan_save_track (./arch/x86/include/asm/current.h:49 mm/kasan/common.c:60 mm/kasan/common.c:69) __kasan_slab_alloc (mm/kasan/common.c:319 mm/kasan/common.c:345) kmem_cache_alloc_noprof (mm/slub.c:4085 mm/slub.c:4134 mm/slub.c:4141) copy_net_ns (net/core/net_namespace.c:421 net/core/net_namespace.c:480) create_new_namespaces ---truncated---",
                                "cve_priority": "high",
                                "cve_public_date": "2024-12-27 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-35864",
                                "url": "https://ubuntu.com/security/CVE-2024-35864",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: smb: client: fix potential UAF in smb2_is_valid_lease_break() Skip sessions that are being teared down (status == SES_EXITING) to avoid UAF.",
                                "cve_priority": "high",
                                "cve_public_date": "2024-05-19 09:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-26928",
                                "url": "https://ubuntu.com/security/CVE-2024-26928",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: smb: client: fix potential UAF in cifs_debug_files_proc_show() Skip sessions that are being teared down (status == SES_EXITING) to avoid UAF.",
                                "cve_priority": "high",
                                "cve_public_date": "2024-04-28 12:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * focal/linux: 5.4.0-214.234 -proposed tracker (LP: #2102635)",
                            "",
                            "  * CVE-2024-50256",
                            "    - netfilter: nf_reject_ipv6: fix potential crash in nf_send_reset6()",
                            "",
                            "  * CVE-2025-21702",
                            "    - pfifo_tail_enqueue: Drop new packet when sch->limit == 0",
                            "",
                            "  * CVE-2025-21703",
                            "    - netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()",
                            "",
                            "  * CVE-2024-26915",
                            "    - drm/amdgpu: Reset IH OVERFLOW_CLEAR bit",
                            "",
                            "  * CVE-2025-21700",
                            "    - net: sched: Disallow replacing of child qdisc from one parent to another",
                            "",
                            "  * CVE-2024-46826",
                            "    - ELF: fix kernel.randomize_va_space double read",
                            "",
                            "  * CVE-2024-56651",
                            "    - can: hi311x: hi3110_can_ist(): fix potential use-after-free",
                            "",
                            "  * CVE-2024-53237",
                            "    - driver core: Introduce device_find_any_child() helper",
                            "    - Bluetooth: fix use-after-free in device_for_each_child()",
                            "",
                            "  * CVE-2024-35958",
                            "    - net: ena: Fix incorrect descriptor free behavior",
                            "",
                            "  * CVE-2024-49974",
                            "    - NFSD: Limit the number of concurrent async COPY operations",
                            "",
                            "  * CVE-2021-47119",
                            "    - ext4: fix memory leak in ext4_fill_super",
                            "",
                            "  * CVE-2024-56658",
                            "    - net: defer final 'struct net' free in netns dismantle",
                            "",
                            "  * CVE-2024-35864",
                            "    - smb: client: fix potential UAF in smb2_is_valid_lease_break()",
                            "",
                            "  * CVE-2024-35864/CVE-2024-26928",
                            "    - smb: client: fix potential UAF in cifs_debug_files_proc_show()",
                            ""
                        ],
                        "package": "linux",
                        "version": "5.4.0-214.234",
                        "urgency": "medium",
                        "distributions": "focal",
                        "launchpad_bugs_fixed": [
                            2102635
                        ],
                        "author": "Stefan Bader <stefan.bader@canonical.com>",
                        "date": "Fri, 14 Mar 2025 15:42:15 +0100"
                    }
                ],
                "notes": "linux-headers-5.4.0-214-generic version '5.4.0-214.234' (source package linux version '5.4.0-214.234') was added. linux-headers-5.4.0-214-generic version '5.4.0-214.234' has the same source package name, linux, as removed package linux-headers-5.4.0-212. As such we can use the source package version of the removed package, '5.4.0-212.232', 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.4.0-214-generic",
                "from_version": {
                    "source_package_name": "linux-signed",
                    "source_package_version": "5.4.0-212.232",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux-signed",
                    "source_package_version": "5.4.0-214.234",
                    "version": "5.4.0-214.234"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    1786013
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Main version: 5.4.0-212.232",
                            "",
                            "  * Packaging resync (LP: #1786013)",
                            "    - [Packaging] debian/tracking-bug -- resync from main package",
                            ""
                        ],
                        "package": "linux-signed",
                        "version": "5.4.0-212.232",
                        "urgency": "medium",
                        "distributions": "focal",
                        "launchpad_bugs_fixed": [
                            1786013
                        ],
                        "author": "Manuel Diewald <manuel.diewald@canonical.com>",
                        "date": "Fri, 14 Mar 2025 19:16:16 +0100"
                    }
                ],
                "notes": "linux-image-5.4.0-214-generic version '5.4.0-214.234' (source package linux-signed version '5.4.0-214.234') was added. linux-image-5.4.0-214-generic version '5.4.0-214.234' has the same source package name, linux-signed, as removed package linux-image-5.4.0-212-generic. As such we can use the source package version of the removed package, '5.4.0-212.232', 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.4.0-214-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.4.0-212.232",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.4.0-214.234",
                    "version": "5.4.0-214.234"
                },
                "cves": [
                    {
                        "cve": "CVE-2024-50256",
                        "url": "https://ubuntu.com/security/CVE-2024-50256",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_reject_ipv6: fix potential crash in nf_send_reset6()  I got a syzbot report without a repro [1] crashing in nf_send_reset6()  I think the issue is that dev->hard_header_len is zero, and we attempt later to push an Ethernet header.  Use LL_MAX_HEADER, as other functions in net/ipv6/netfilter/nf_reject_ipv6.c.  [1]  skbuff: skb_under_panic: text:ffffffff89b1d008 len:74 put:14 head:ffff88803123aa00 data:ffff88803123a9f2 tail:0x3c end:0x140 dev:syz_tun  kernel BUG at net/core/skbuff.c:206 ! Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI CPU: 0 UID: 0 PID: 7373 Comm: syz.1.568 Not tainted 6.12.0-rc2-syzkaller-00631-g6d858708d465 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024  RIP: 0010:skb_panic net/core/skbuff.c:206 [inline]  RIP: 0010:skb_under_panic+0x14b/0x150 net/core/skbuff.c:216 Code: 0d 8d 48 c7 c6 60 a6 29 8e 48 8b 54 24 08 8b 0c 24 44 8b 44 24 04 4d 89 e9 50 41 54 41 57 41 56 e8 ba 30 38 02 48 83 c4 20 90 <0f> 0b 0f 1f 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 RSP: 0018:ffffc900045269b0 EFLAGS: 00010282 RAX: 0000000000000088 RBX: dffffc0000000000 RCX: cd66dacdc5d8e800 RDX: 0000000000000000 RSI: 0000000000000200 RDI: 0000000000000000 RBP: ffff88802d39a3d0 R08: ffffffff8174afec R09: 1ffff920008a4ccc R10: dffffc0000000000 R11: fffff520008a4ccd R12: 0000000000000140 R13: ffff88803123aa00 R14: ffff88803123a9f2 R15: 000000000000003c FS:  00007fdbee5ff6c0(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 000000005d322000 CR4: 00000000003526f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace:  <TASK>   skb_push+0xe5/0x100 net/core/skbuff.c:2636   eth_header+0x38/0x1f0 net/ethernet/eth.c:83   dev_hard_header include/linux/netdevice.h:3208 [inline]   nf_send_reset6+0xce6/0x1270 net/ipv6/netfilter/nf_reject_ipv6.c:358   nft_reject_inet_eval+0x3b9/0x690 net/netfilter/nft_reject_inet.c:48   expr_call_ops_eval net/netfilter/nf_tables_core.c:240 [inline]   nft_do_chain+0x4ad/0x1da0 net/netfilter/nf_tables_core.c:288   nft_do_chain_inet+0x418/0x6b0 net/netfilter/nft_chain_filter.c:161   nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]   nf_hook_slow+0xc3/0x220 net/netfilter/core.c:626   nf_hook include/linux/netfilter.h:269 [inline]   NF_HOOK include/linux/netfilter.h:312 [inline]   br_nf_pre_routing_ipv6+0x63e/0x770 net/bridge/br_netfilter_ipv6.c:184   nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]   nf_hook_bridge_pre net/bridge/br_input.c:277 [inline]   br_handle_frame+0x9fd/0x1530 net/bridge/br_input.c:424   __netif_receive_skb_core+0x13e8/0x4570 net/core/dev.c:5562   __netif_receive_skb_one_core net/core/dev.c:5666 [inline]   __netif_receive_skb+0x12f/0x650 net/core/dev.c:5781   netif_receive_skb_internal net/core/dev.c:5867 [inline]   netif_receive_skb+0x1e8/0x890 net/core/dev.c:5926   tun_rx_batched+0x1b7/0x8f0 drivers/net/tun.c:1550   tun_get_user+0x3056/0x47e0 drivers/net/tun.c:2007   tun_chr_write_iter+0x10d/0x1f0 drivers/net/tun.c:2053   new_sync_write fs/read_write.c:590 [inline]   vfs_write+0xa6d/0xc90 fs/read_write.c:683   ksys_write+0x183/0x2b0 fs/read_write.c:736   do_syscall_x64 arch/x86/entry/common.c:52 [inline]   do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fdbeeb7d1ff Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 c9 8d 02 00 48 8b 54 24 18 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 31 44 89 c7 48 89 44 24 08 e8 1c 8e 02 00 48 RSP: 002b:00007fdbee5ff000 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fdbeed36058 RCX: 00007fdbeeb7d1ff RDX: 000000000000008e RSI: 0000000020000040 RDI: 00000000000000c8 RBP: 00007fdbeebf12be R08: 0000000 ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-11-09 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-21702",
                        "url": "https://ubuntu.com/security/CVE-2025-21702",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pfifo_tail_enqueue: Drop new packet when sch->limit == 0  Expected behaviour: In case we reach scheduler's limit, pfifo_tail_enqueue() will drop a packet in scheduler's queue and decrease scheduler's qlen by one. Then, pfifo_tail_enqueue() enqueue new packet and increase scheduler's qlen by one. Finally, pfifo_tail_enqueue() return `NET_XMIT_CN` status code.  Weird behaviour: In case we set `sch->limit == 0` and trigger pfifo_tail_enqueue() on a scheduler that has no packet, the 'drop a packet' step will do nothing. This means the scheduler's qlen still has value equal 0. Then, we continue to enqueue new packet and increase scheduler's qlen by one. In summary, we can leverage pfifo_tail_enqueue() to increase qlen by one and return `NET_XMIT_CN` status code.  The problem is: Let's say we have two qdiscs: Qdisc_A and Qdisc_B.  - Qdisc_A's type must have '->graft()' function to create parent/child relationship.    Let's say Qdisc_A's type is `hfsc`. Enqueue packet to this qdisc will trigger `hfsc_enqueue`.  - Qdisc_B's type is pfifo_head_drop. Enqueue packet to this qdisc will trigger `pfifo_tail_enqueue`.  - Qdisc_B is configured to have `sch->limit == 0`.  - Qdisc_A is configured to route the enqueued's packet to Qdisc_B.  Enqueue packet through Qdisc_A will lead to:  - hfsc_enqueue(Qdisc_A) -> pfifo_tail_enqueue(Qdisc_B)  - Qdisc_B->q.qlen += 1  - pfifo_tail_enqueue() return `NET_XMIT_CN`  - hfsc_enqueue() check for `NET_XMIT_SUCCESS` and see `NET_XMIT_CN` => hfsc_enqueue() don't increase qlen of Qdisc_A.  The whole process lead to a situation where Qdisc_A->q.qlen == 0 and Qdisc_B->q.qlen == 1. Replace 'hfsc' with other type (for example: 'drr') still lead to the same problem. This violate the design where parent's qlen should equal to the sum of its childrens'qlen.  Bug impact: This issue can be used for user->kernel privilege escalation when it is reachable.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-18 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-21703",
                        "url": "https://ubuntu.com/security/CVE-2025-21703",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()  qdisc_tree_reduce_backlog() notifies parent qdisc only if child qdisc becomes empty, therefore we need to reduce the backlog of the child qdisc before calling it. Otherwise it would miss the opportunity to call cops->qlen_notify(), in the case of DRR, it resulted in UAF since DRR uses ->qlen_notify() to maintain its active list.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-18 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-26915",
                        "url": "https://ubuntu.com/security/CVE-2024-26915",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: Reset IH OVERFLOW_CLEAR bit Allows us to detect subsequent IH ring buffer overflows as well.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-04-17 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-21700",
                        "url": "https://ubuntu.com/security/CVE-2025-21700",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: Disallow replacing of child qdisc from one parent to another  Lion Ackermann was able to create a UAF which can be abused for privilege escalation with the following script  Step 1. create root qdisc tc qdisc add dev lo root handle 1:0 drr  step2. a class for packet aggregation do demonstrate uaf tc class add dev lo classid 1:1 drr  step3. a class for nesting tc class add dev lo classid 1:2 drr  step4. a class to graft qdisc to tc class add dev lo classid 1:3 drr  step5. tc qdisc add dev lo parent 1:1 handle 2:0 plug limit 1024  step6. tc qdisc add dev lo parent 1:2 handle 3:0 drr  step7. tc class add dev lo classid 3:1 drr  step 8. tc qdisc add dev lo parent 3:1 handle 4:0 pfifo  step 9. Display the class/qdisc layout  tc class ls dev lo  class drr 1:1 root leaf 2: quantum 64Kb  class drr 1:2 root leaf 3: quantum 64Kb  class drr 3:1 root leaf 4: quantum 64Kb  tc qdisc ls  qdisc drr 1: dev lo root refcnt 2  qdisc plug 2: dev lo parent 1:1  qdisc pfifo 4: dev lo parent 3:1 limit 1000p  qdisc drr 3: dev lo parent 1:2  step10. trigger the bug <=== prevented by this patch tc qdisc replace dev lo parent 1:3 handle 4:0  step 11. Redisplay again the qdiscs/classes  tc class ls dev lo  class drr 1:1 root leaf 2: quantum 64Kb  class drr 1:2 root leaf 3: quantum 64Kb  class drr 1:3 root leaf 4: quantum 64Kb  class drr 3:1 root leaf 4: quantum 64Kb  tc qdisc ls  qdisc drr 1: dev lo root refcnt 2  qdisc plug 2: dev lo parent 1:1  qdisc pfifo 4: dev lo parent 3:1 refcnt 2 limit 1000p  qdisc drr 3: dev lo parent 1:2  Observe that a) parent for 4:0 does not change despite the replace request. There can only be one parent.  b) refcount has gone up by two for 4:0 and c) both class 1:3 and 3:1 are pointing to it.  Step 12.  send one packet to plug echo \"\" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10001)) step13.  send one packet to the grafted fifo echo \"\" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10003))  step14. lets trigger the uaf tc class delete dev lo classid 1:3 tc class delete dev lo classid 1:1  The semantics of \"replace\" is for a del/add _on the same node_ and not a delete from one node(3:1) and add to another node (1:3) as in step10. While we could \"fix\" with a more complex approach there could be consequences to expectations so the patch takes the preventive approach of \"disallow such config\".  Joint work with Lion Ackermann <nnamrec@gmail.com>",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-13 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-46826",
                        "url": "https://ubuntu.com/security/CVE-2024-46826",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ELF: fix kernel.randomize_va_space double read  ELF loader uses \"randomize_va_space\" twice. It is sysctl and can change at any moment, so 2 loads could see 2 different values in theory with unpredictable consequences.  Issue exactly one load for consistent value across one exec.",
                        "cve_priority": "low",
                        "cve_public_date": "2024-09-27 13:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-56651",
                        "url": "https://ubuntu.com/security/CVE-2024-56651",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: hi311x: hi3110_can_ist(): fix potential use-after-free  The commit a22bd630cfff (\"can: hi311x: do not report txerr and rxerr during bus-off\") removed the reporting of rxerr and txerr even in case of correct operation (i. e. not bus-off).  The error count information added to the CAN frame after netif_rx() is a potential use after free, since there is no guarantee that the skb is in the same state. It might be freed or reused.  Fix the issue by postponing the netif_rx() call in case of txerr and rxerr reporting.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-12-27 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-53237",
                        "url": "https://ubuntu.com/security/CVE-2024-53237",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: fix use-after-free in device_for_each_child()  Syzbot has reported the following KASAN splat:  BUG: KASAN: slab-use-after-free in device_for_each_child+0x18f/0x1a0 Read of size 8 at addr ffff88801f605308 by task kbnepd bnep0/4980  CPU: 0 UID: 0 PID: 4980 Comm: kbnepd bnep0 Not tainted 6.12.0-rc4-00161-gae90f6a6170d #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014 Call Trace:  <TASK>  dump_stack_lvl+0x100/0x190  ? device_for_each_child+0x18f/0x1a0  print_report+0x13a/0x4cb  ? __virt_addr_valid+0x5e/0x590  ? __phys_addr+0xc6/0x150  ? device_for_each_child+0x18f/0x1a0  kasan_report+0xda/0x110  ? device_for_each_child+0x18f/0x1a0  ? __pfx_dev_memalloc_noio+0x10/0x10  device_for_each_child+0x18f/0x1a0  ? __pfx_device_for_each_child+0x10/0x10  pm_runtime_set_memalloc_noio+0xf2/0x180  netdev_unregister_kobject+0x1ed/0x270  unregister_netdevice_many_notify+0x123c/0x1d80  ? __mutex_trylock_common+0xde/0x250  ? __pfx_unregister_netdevice_many_notify+0x10/0x10  ? trace_contention_end+0xe6/0x140  ? __mutex_lock+0x4e7/0x8f0  ? __pfx_lock_acquire.part.0+0x10/0x10  ? rcu_is_watching+0x12/0xc0  ? unregister_netdev+0x12/0x30  unregister_netdevice_queue+0x30d/0x3f0  ? __pfx_unregister_netdevice_queue+0x10/0x10  ? __pfx_down_write+0x10/0x10  unregister_netdev+0x1c/0x30  bnep_session+0x1fb3/0x2ab0  ? __pfx_bnep_session+0x10/0x10  ? __pfx_lock_release+0x10/0x10  ? __pfx_woken_wake_function+0x10/0x10  ? __kthread_parkme+0x132/0x200  ? __pfx_bnep_session+0x10/0x10  ? kthread+0x13a/0x370  ? __pfx_bnep_session+0x10/0x10  kthread+0x2b7/0x370  ? __pfx_kthread+0x10/0x10  ret_from_fork+0x48/0x80  ? __pfx_kthread+0x10/0x10  ret_from_fork_asm+0x1a/0x30  </TASK>  Allocated by task 4974:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0xaa/0xb0  __kmalloc_noprof+0x1d1/0x440  hci_alloc_dev_priv+0x1d/0x2820  __vhci_create_device+0xef/0x7d0  vhci_write+0x2c7/0x480  vfs_write+0x6a0/0xfc0  ksys_write+0x12f/0x260  do_syscall_64+0xc7/0x250  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 4979:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  kasan_save_free_info+0x3b/0x60  __kasan_slab_free+0x4f/0x70  kfree+0x141/0x490  hci_release_dev+0x4d9/0x600  bt_host_release+0x6a/0xb0  device_release+0xa4/0x240  kobject_put+0x1ec/0x5a0  put_device+0x1f/0x30  vhci_release+0x81/0xf0  __fput+0x3f6/0xb30  task_work_run+0x151/0x250  do_exit+0xa79/0x2c30  do_group_exit+0xd5/0x2a0  get_signal+0x1fcd/0x2210  arch_do_signal_or_restart+0x93/0x780  syscall_exit_to_user_mode+0x140/0x290  do_syscall_64+0xd4/0x250  entry_SYSCALL_64_after_hwframe+0x77/0x7f  In 'hci_conn_del_sysfs()', 'device_unregister()' may be called when an underlying (kobject) reference counter is greater than 1. This means that reparenting (happened when the device is actually freed) is delayed and, during that delay, parent controller device (hciX) may be deleted. Since the latter may create a dangling pointer to freed parent, avoid that scenario by reparenting to NULL explicitly.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-12-27 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-35958",
                        "url": "https://ubuntu.com/security/CVE-2024-35958",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: net: ena: Fix incorrect descriptor free behavior ENA has two types of TX queues: - queues which only process TX packets arriving from the network stack - queues which only process TX packets forwarded to it by XDP_REDIRECT or XDP_TX instructions The ena_free_tx_bufs() cycles through all descriptors in a TX queue and unmaps + frees every descriptor that hasn't been acknowledged yet by the device (uncompleted TX transactions). The function assumes that the processed TX queue is necessarily from the first category listed above and ends up using napi_consume_skb() for descriptors belonging to an XDP specific queue. This patch solves a bug in which, in case of a VF reset, the descriptors aren't freed correctly, leading to crashes.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-05-20 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-49974",
                        "url": "https://ubuntu.com/security/CVE-2024-49974",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: Limit the number of concurrent async COPY operations  Nothing appears to limit the number of concurrent async COPY operations that clients can start. In addition, AFAICT each async COPY can copy an unlimited number of 4MB chunks, so can run for a long time. Thus IMO async COPY can become a DoS vector.  Add a restriction mechanism that bounds the number of concurrent background COPY operations. Start simple and try to be fair -- this patch implements a per-namespace limit.  An async COPY request that occurs while this limit is exceeded gets NFS4ERR_DELAY. The requesting client can choose to send the request again after a delay or fall back to a traditional read/write style copy.  If there is need to make the mechanism more sophisticated, we can visit that in future patches.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-10-21 18:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2021-47119",
                        "url": "https://ubuntu.com/security/CVE-2021-47119",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: ext4: fix memory leak in ext4_fill_super Buffer head references must be released before calling kill_bdev(); otherwise the buffer head (and its page referenced by b_data) will not be freed by kill_bdev, and subsequently that bh will be leaked. If blocksizes differ, sb_set_blocksize() will kill current buffers and page cache by using kill_bdev(). And then super block will be reread again but using correct blocksize this time. sb_set_blocksize() didn't fully free superblock page and buffer head, and being busy, they were not freed and instead leaked. This can easily be reproduced by calling an infinite loop of: systemctl start <ext4_on_lvm>.mount, and systemctl stop <ext4_on_lvm>.mount ... since systemd creates a cgroup for each slice which it mounts, and the bh leak get amplified by a dying memory cgroup that also never gets freed, and memory consumption is much more easily noticed.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-03-15 21:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-56658",
                        "url": "https://ubuntu.com/security/CVE-2024-56658",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: defer final 'struct net' free in netns dismantle  Ilya reported a slab-use-after-free in dst_destroy [1]  Issue is in xfrm6_net_init() and xfrm4_net_init() :  They copy xfrm[46]_dst_ops_template into net->xfrm.xfrm[46]_dst_ops.  But net structure might be freed before all the dst callbacks are called. So when dst_destroy() calls later :  if (dst->ops->destroy)     dst->ops->destroy(dst);  dst->ops points to the old net->xfrm.xfrm[46]_dst_ops, which has been freed.  See a relevant issue fixed in :  ac888d58869b (\"net: do not delay dst_entries_add() in dst_release()\")  A fix is to queue the 'struct net' to be freed after one another cleanup_net() round (and existing rcu_barrier())  [1]  BUG: KASAN: slab-use-after-free in dst_destroy (net/core/dst.c:112) Read of size 8 at addr ffff8882137ccab0 by task swapper/37/0 Dec 03 05:46:18 kernel: CPU: 37 UID: 0 PID: 0 Comm: swapper/37 Kdump: loaded Not tainted 6.12.0 #67 Hardware name: Red Hat KVM/RHEL, BIOS 1.16.1-1.el9 04/01/2014 Call Trace:  <IRQ> dump_stack_lvl (lib/dump_stack.c:124) print_address_description.constprop.0 (mm/kasan/report.c:378) ? dst_destroy (net/core/dst.c:112) print_report (mm/kasan/report.c:489) ? dst_destroy (net/core/dst.c:112) ? kasan_addr_to_slab (mm/kasan/common.c:37) kasan_report (mm/kasan/report.c:603) ? dst_destroy (net/core/dst.c:112) ? rcu_do_batch (kernel/rcu/tree.c:2567) dst_destroy (net/core/dst.c:112) rcu_do_batch (kernel/rcu/tree.c:2567) ? __pfx_rcu_do_batch (kernel/rcu/tree.c:2491) ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4339 kernel/locking/lockdep.c:4406) rcu_core (kernel/rcu/tree.c:2825) handle_softirqs (kernel/softirq.c:554) __irq_exit_rcu (kernel/softirq.c:589 kernel/softirq.c:428 kernel/softirq.c:637) irq_exit_rcu (kernel/softirq.c:651) sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1049 arch/x86/kernel/apic/apic.c:1049)  </IRQ>  <TASK> asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:702) RIP: 0010:default_idle (./arch/x86/include/asm/irqflags.h:37 ./arch/x86/include/asm/irqflags.h:92 arch/x86/kernel/process.c:743) Code: 00 4d 29 c8 4c 01 c7 4c 29 c2 e9 6e ff ff ff 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 66 90 0f 00 2d c7 c9 27 00 fb f4 <fa> c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 90 RSP: 0018:ffff888100d2fe00 EFLAGS: 00000246 RAX: 00000000001870ed RBX: 1ffff110201a5fc2 RCX: ffffffffb61a3e46 RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffffb3d4d123 RBP: 0000000000000000 R08: 0000000000000001 R09: ffffed11c7e1835d R10: ffff888e3f0c1aeb R11: 0000000000000000 R12: 0000000000000000 R13: ffff888100d20000 R14: dffffc0000000000 R15: 0000000000000000 ? ct_kernel_exit.constprop.0 (kernel/context_tracking.c:148) ? cpuidle_idle_call (kernel/sched/idle.c:186) default_idle_call (./include/linux/cpuidle.h:143 kernel/sched/idle.c:118) cpuidle_idle_call (kernel/sched/idle.c:186) ? __pfx_cpuidle_idle_call (kernel/sched/idle.c:168) ? lock_release (kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5848) ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4347 kernel/locking/lockdep.c:4406) ? tsc_verify_tsc_adjust (arch/x86/kernel/tsc_sync.c:59) do_idle (kernel/sched/idle.c:326) cpu_startup_entry (kernel/sched/idle.c:423 (discriminator 1)) start_secondary (arch/x86/kernel/smpboot.c:202 arch/x86/kernel/smpboot.c:282) ? __pfx_start_secondary (arch/x86/kernel/smpboot.c:232) ? soft_restart_cpu (arch/x86/kernel/head_64.S:452) common_startup_64 (arch/x86/kernel/head_64.S:414)  </TASK> Dec 03 05:46:18 kernel: Allocated by task 12184: kasan_save_stack (mm/kasan/common.c:48) kasan_save_track (./arch/x86/include/asm/current.h:49 mm/kasan/common.c:60 mm/kasan/common.c:69) __kasan_slab_alloc (mm/kasan/common.c:319 mm/kasan/common.c:345) kmem_cache_alloc_noprof (mm/slub.c:4085 mm/slub.c:4134 mm/slub.c:4141) copy_net_ns (net/core/net_namespace.c:421 net/core/net_namespace.c:480) create_new_namespaces ---truncated---",
                        "cve_priority": "high",
                        "cve_public_date": "2024-12-27 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-35864",
                        "url": "https://ubuntu.com/security/CVE-2024-35864",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: smb: client: fix potential UAF in smb2_is_valid_lease_break() Skip sessions that are being teared down (status == SES_EXITING) to avoid UAF.",
                        "cve_priority": "high",
                        "cve_public_date": "2024-05-19 09:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-26928",
                        "url": "https://ubuntu.com/security/CVE-2024-26928",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved: smb: client: fix potential UAF in cifs_debug_files_proc_show() Skip sessions that are being teared down (status == SES_EXITING) to avoid UAF.",
                        "cve_priority": "high",
                        "cve_public_date": "2024-04-28 12:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2102635
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2024-50256",
                                "url": "https://ubuntu.com/security/CVE-2024-50256",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netfilter: nf_reject_ipv6: fix potential crash in nf_send_reset6()  I got a syzbot report without a repro [1] crashing in nf_send_reset6()  I think the issue is that dev->hard_header_len is zero, and we attempt later to push an Ethernet header.  Use LL_MAX_HEADER, as other functions in net/ipv6/netfilter/nf_reject_ipv6.c.  [1]  skbuff: skb_under_panic: text:ffffffff89b1d008 len:74 put:14 head:ffff88803123aa00 data:ffff88803123a9f2 tail:0x3c end:0x140 dev:syz_tun  kernel BUG at net/core/skbuff.c:206 ! Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI CPU: 0 UID: 0 PID: 7373 Comm: syz.1.568 Not tainted 6.12.0-rc2-syzkaller-00631-g6d858708d465 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024  RIP: 0010:skb_panic net/core/skbuff.c:206 [inline]  RIP: 0010:skb_under_panic+0x14b/0x150 net/core/skbuff.c:216 Code: 0d 8d 48 c7 c6 60 a6 29 8e 48 8b 54 24 08 8b 0c 24 44 8b 44 24 04 4d 89 e9 50 41 54 41 57 41 56 e8 ba 30 38 02 48 83 c4 20 90 <0f> 0b 0f 1f 00 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 f3 RSP: 0018:ffffc900045269b0 EFLAGS: 00010282 RAX: 0000000000000088 RBX: dffffc0000000000 RCX: cd66dacdc5d8e800 RDX: 0000000000000000 RSI: 0000000000000200 RDI: 0000000000000000 RBP: ffff88802d39a3d0 R08: ffffffff8174afec R09: 1ffff920008a4ccc R10: dffffc0000000000 R11: fffff520008a4ccd R12: 0000000000000140 R13: ffff88803123aa00 R14: ffff88803123a9f2 R15: 000000000000003c FS:  00007fdbee5ff6c0(0000) GS:ffff8880b8600000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 000000005d322000 CR4: 00000000003526f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace:  <TASK>   skb_push+0xe5/0x100 net/core/skbuff.c:2636   eth_header+0x38/0x1f0 net/ethernet/eth.c:83   dev_hard_header include/linux/netdevice.h:3208 [inline]   nf_send_reset6+0xce6/0x1270 net/ipv6/netfilter/nf_reject_ipv6.c:358   nft_reject_inet_eval+0x3b9/0x690 net/netfilter/nft_reject_inet.c:48   expr_call_ops_eval net/netfilter/nf_tables_core.c:240 [inline]   nft_do_chain+0x4ad/0x1da0 net/netfilter/nf_tables_core.c:288   nft_do_chain_inet+0x418/0x6b0 net/netfilter/nft_chain_filter.c:161   nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]   nf_hook_slow+0xc3/0x220 net/netfilter/core.c:626   nf_hook include/linux/netfilter.h:269 [inline]   NF_HOOK include/linux/netfilter.h:312 [inline]   br_nf_pre_routing_ipv6+0x63e/0x770 net/bridge/br_netfilter_ipv6.c:184   nf_hook_entry_hookfn include/linux/netfilter.h:154 [inline]   nf_hook_bridge_pre net/bridge/br_input.c:277 [inline]   br_handle_frame+0x9fd/0x1530 net/bridge/br_input.c:424   __netif_receive_skb_core+0x13e8/0x4570 net/core/dev.c:5562   __netif_receive_skb_one_core net/core/dev.c:5666 [inline]   __netif_receive_skb+0x12f/0x650 net/core/dev.c:5781   netif_receive_skb_internal net/core/dev.c:5867 [inline]   netif_receive_skb+0x1e8/0x890 net/core/dev.c:5926   tun_rx_batched+0x1b7/0x8f0 drivers/net/tun.c:1550   tun_get_user+0x3056/0x47e0 drivers/net/tun.c:2007   tun_chr_write_iter+0x10d/0x1f0 drivers/net/tun.c:2053   new_sync_write fs/read_write.c:590 [inline]   vfs_write+0xa6d/0xc90 fs/read_write.c:683   ksys_write+0x183/0x2b0 fs/read_write.c:736   do_syscall_x64 arch/x86/entry/common.c:52 [inline]   do_syscall_64+0xf3/0x230 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fdbeeb7d1ff Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 c9 8d 02 00 48 8b 54 24 18 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 31 44 89 c7 48 89 44 24 08 e8 1c 8e 02 00 48 RSP: 002b:00007fdbee5ff000 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fdbeed36058 RCX: 00007fdbeeb7d1ff RDX: 000000000000008e RSI: 0000000020000040 RDI: 00000000000000c8 RBP: 00007fdbeebf12be R08: 0000000 ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-11-09 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-21702",
                                "url": "https://ubuntu.com/security/CVE-2025-21702",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pfifo_tail_enqueue: Drop new packet when sch->limit == 0  Expected behaviour: In case we reach scheduler's limit, pfifo_tail_enqueue() will drop a packet in scheduler's queue and decrease scheduler's qlen by one. Then, pfifo_tail_enqueue() enqueue new packet and increase scheduler's qlen by one. Finally, pfifo_tail_enqueue() return `NET_XMIT_CN` status code.  Weird behaviour: In case we set `sch->limit == 0` and trigger pfifo_tail_enqueue() on a scheduler that has no packet, the 'drop a packet' step will do nothing. This means the scheduler's qlen still has value equal 0. Then, we continue to enqueue new packet and increase scheduler's qlen by one. In summary, we can leverage pfifo_tail_enqueue() to increase qlen by one and return `NET_XMIT_CN` status code.  The problem is: Let's say we have two qdiscs: Qdisc_A and Qdisc_B.  - Qdisc_A's type must have '->graft()' function to create parent/child relationship.    Let's say Qdisc_A's type is `hfsc`. Enqueue packet to this qdisc will trigger `hfsc_enqueue`.  - Qdisc_B's type is pfifo_head_drop. Enqueue packet to this qdisc will trigger `pfifo_tail_enqueue`.  - Qdisc_B is configured to have `sch->limit == 0`.  - Qdisc_A is configured to route the enqueued's packet to Qdisc_B.  Enqueue packet through Qdisc_A will lead to:  - hfsc_enqueue(Qdisc_A) -> pfifo_tail_enqueue(Qdisc_B)  - Qdisc_B->q.qlen += 1  - pfifo_tail_enqueue() return `NET_XMIT_CN`  - hfsc_enqueue() check for `NET_XMIT_SUCCESS` and see `NET_XMIT_CN` => hfsc_enqueue() don't increase qlen of Qdisc_A.  The whole process lead to a situation where Qdisc_A->q.qlen == 0 and Qdisc_B->q.qlen == 1. Replace 'hfsc' with other type (for example: 'drr') still lead to the same problem. This violate the design where parent's qlen should equal to the sum of its childrens'qlen.  Bug impact: This issue can be used for user->kernel privilege escalation when it is reachable.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-18 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-21703",
                                "url": "https://ubuntu.com/security/CVE-2025-21703",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()  qdisc_tree_reduce_backlog() notifies parent qdisc only if child qdisc becomes empty, therefore we need to reduce the backlog of the child qdisc before calling it. Otherwise it would miss the opportunity to call cops->qlen_notify(), in the case of DRR, it resulted in UAF since DRR uses ->qlen_notify() to maintain its active list.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-18 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-26915",
                                "url": "https://ubuntu.com/security/CVE-2024-26915",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: Reset IH OVERFLOW_CLEAR bit Allows us to detect subsequent IH ring buffer overflows as well.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-04-17 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-21700",
                                "url": "https://ubuntu.com/security/CVE-2025-21700",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: Disallow replacing of child qdisc from one parent to another  Lion Ackermann was able to create a UAF which can be abused for privilege escalation with the following script  Step 1. create root qdisc tc qdisc add dev lo root handle 1:0 drr  step2. a class for packet aggregation do demonstrate uaf tc class add dev lo classid 1:1 drr  step3. a class for nesting tc class add dev lo classid 1:2 drr  step4. a class to graft qdisc to tc class add dev lo classid 1:3 drr  step5. tc qdisc add dev lo parent 1:1 handle 2:0 plug limit 1024  step6. tc qdisc add dev lo parent 1:2 handle 3:0 drr  step7. tc class add dev lo classid 3:1 drr  step 8. tc qdisc add dev lo parent 3:1 handle 4:0 pfifo  step 9. Display the class/qdisc layout  tc class ls dev lo  class drr 1:1 root leaf 2: quantum 64Kb  class drr 1:2 root leaf 3: quantum 64Kb  class drr 3:1 root leaf 4: quantum 64Kb  tc qdisc ls  qdisc drr 1: dev lo root refcnt 2  qdisc plug 2: dev lo parent 1:1  qdisc pfifo 4: dev lo parent 3:1 limit 1000p  qdisc drr 3: dev lo parent 1:2  step10. trigger the bug <=== prevented by this patch tc qdisc replace dev lo parent 1:3 handle 4:0  step 11. Redisplay again the qdiscs/classes  tc class ls dev lo  class drr 1:1 root leaf 2: quantum 64Kb  class drr 1:2 root leaf 3: quantum 64Kb  class drr 1:3 root leaf 4: quantum 64Kb  class drr 3:1 root leaf 4: quantum 64Kb  tc qdisc ls  qdisc drr 1: dev lo root refcnt 2  qdisc plug 2: dev lo parent 1:1  qdisc pfifo 4: dev lo parent 3:1 refcnt 2 limit 1000p  qdisc drr 3: dev lo parent 1:2  Observe that a) parent for 4:0 does not change despite the replace request. There can only be one parent.  b) refcount has gone up by two for 4:0 and c) both class 1:3 and 3:1 are pointing to it.  Step 12.  send one packet to plug echo \"\" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10001)) step13.  send one packet to the grafted fifo echo \"\" | socat -u STDIN UDP4-DATAGRAM:127.0.0.1:8888,priority=$((0x10003))  step14. lets trigger the uaf tc class delete dev lo classid 1:3 tc class delete dev lo classid 1:1  The semantics of \"replace\" is for a del/add _on the same node_ and not a delete from one node(3:1) and add to another node (1:3) as in step10. While we could \"fix\" with a more complex approach there could be consequences to expectations so the patch takes the preventive approach of \"disallow such config\".  Joint work with Lion Ackermann <nnamrec@gmail.com>",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-13 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-46826",
                                "url": "https://ubuntu.com/security/CVE-2024-46826",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ELF: fix kernel.randomize_va_space double read  ELF loader uses \"randomize_va_space\" twice. It is sysctl and can change at any moment, so 2 loads could see 2 different values in theory with unpredictable consequences.  Issue exactly one load for consistent value across one exec.",
                                "cve_priority": "low",
                                "cve_public_date": "2024-09-27 13:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-56651",
                                "url": "https://ubuntu.com/security/CVE-2024-56651",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: hi311x: hi3110_can_ist(): fix potential use-after-free  The commit a22bd630cfff (\"can: hi311x: do not report txerr and rxerr during bus-off\") removed the reporting of rxerr and txerr even in case of correct operation (i. e. not bus-off).  The error count information added to the CAN frame after netif_rx() is a potential use after free, since there is no guarantee that the skb is in the same state. It might be freed or reused.  Fix the issue by postponing the netif_rx() call in case of txerr and rxerr reporting.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-12-27 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-53237",
                                "url": "https://ubuntu.com/security/CVE-2024-53237",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: fix use-after-free in device_for_each_child()  Syzbot has reported the following KASAN splat:  BUG: KASAN: slab-use-after-free in device_for_each_child+0x18f/0x1a0 Read of size 8 at addr ffff88801f605308 by task kbnepd bnep0/4980  CPU: 0 UID: 0 PID: 4980 Comm: kbnepd bnep0 Not tainted 6.12.0-rc4-00161-gae90f6a6170d #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014 Call Trace:  <TASK>  dump_stack_lvl+0x100/0x190  ? device_for_each_child+0x18f/0x1a0  print_report+0x13a/0x4cb  ? __virt_addr_valid+0x5e/0x590  ? __phys_addr+0xc6/0x150  ? device_for_each_child+0x18f/0x1a0  kasan_report+0xda/0x110  ? device_for_each_child+0x18f/0x1a0  ? __pfx_dev_memalloc_noio+0x10/0x10  device_for_each_child+0x18f/0x1a0  ? __pfx_device_for_each_child+0x10/0x10  pm_runtime_set_memalloc_noio+0xf2/0x180  netdev_unregister_kobject+0x1ed/0x270  unregister_netdevice_many_notify+0x123c/0x1d80  ? __mutex_trylock_common+0xde/0x250  ? __pfx_unregister_netdevice_many_notify+0x10/0x10  ? trace_contention_end+0xe6/0x140  ? __mutex_lock+0x4e7/0x8f0  ? __pfx_lock_acquire.part.0+0x10/0x10  ? rcu_is_watching+0x12/0xc0  ? unregister_netdev+0x12/0x30  unregister_netdevice_queue+0x30d/0x3f0  ? __pfx_unregister_netdevice_queue+0x10/0x10  ? __pfx_down_write+0x10/0x10  unregister_netdev+0x1c/0x30  bnep_session+0x1fb3/0x2ab0  ? __pfx_bnep_session+0x10/0x10  ? __pfx_lock_release+0x10/0x10  ? __pfx_woken_wake_function+0x10/0x10  ? __kthread_parkme+0x132/0x200  ? __pfx_bnep_session+0x10/0x10  ? kthread+0x13a/0x370  ? __pfx_bnep_session+0x10/0x10  kthread+0x2b7/0x370  ? __pfx_kthread+0x10/0x10  ret_from_fork+0x48/0x80  ? __pfx_kthread+0x10/0x10  ret_from_fork_asm+0x1a/0x30  </TASK>  Allocated by task 4974:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0xaa/0xb0  __kmalloc_noprof+0x1d1/0x440  hci_alloc_dev_priv+0x1d/0x2820  __vhci_create_device+0xef/0x7d0  vhci_write+0x2c7/0x480  vfs_write+0x6a0/0xfc0  ksys_write+0x12f/0x260  do_syscall_64+0xc7/0x250  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 4979:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  kasan_save_free_info+0x3b/0x60  __kasan_slab_free+0x4f/0x70  kfree+0x141/0x490  hci_release_dev+0x4d9/0x600  bt_host_release+0x6a/0xb0  device_release+0xa4/0x240  kobject_put+0x1ec/0x5a0  put_device+0x1f/0x30  vhci_release+0x81/0xf0  __fput+0x3f6/0xb30  task_work_run+0x151/0x250  do_exit+0xa79/0x2c30  do_group_exit+0xd5/0x2a0  get_signal+0x1fcd/0x2210  arch_do_signal_or_restart+0x93/0x780  syscall_exit_to_user_mode+0x140/0x290  do_syscall_64+0xd4/0x250  entry_SYSCALL_64_after_hwframe+0x77/0x7f  In 'hci_conn_del_sysfs()', 'device_unregister()' may be called when an underlying (kobject) reference counter is greater than 1. This means that reparenting (happened when the device is actually freed) is delayed and, during that delay, parent controller device (hciX) may be deleted. Since the latter may create a dangling pointer to freed parent, avoid that scenario by reparenting to NULL explicitly.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-12-27 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-35958",
                                "url": "https://ubuntu.com/security/CVE-2024-35958",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: net: ena: Fix incorrect descriptor free behavior ENA has two types of TX queues: - queues which only process TX packets arriving from the network stack - queues which only process TX packets forwarded to it by XDP_REDIRECT or XDP_TX instructions The ena_free_tx_bufs() cycles through all descriptors in a TX queue and unmaps + frees every descriptor that hasn't been acknowledged yet by the device (uncompleted TX transactions). The function assumes that the processed TX queue is necessarily from the first category listed above and ends up using napi_consume_skb() for descriptors belonging to an XDP specific queue. This patch solves a bug in which, in case of a VF reset, the descriptors aren't freed correctly, leading to crashes.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-05-20 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-49974",
                                "url": "https://ubuntu.com/security/CVE-2024-49974",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: Limit the number of concurrent async COPY operations  Nothing appears to limit the number of concurrent async COPY operations that clients can start. In addition, AFAICT each async COPY can copy an unlimited number of 4MB chunks, so can run for a long time. Thus IMO async COPY can become a DoS vector.  Add a restriction mechanism that bounds the number of concurrent background COPY operations. Start simple and try to be fair -- this patch implements a per-namespace limit.  An async COPY request that occurs while this limit is exceeded gets NFS4ERR_DELAY. The requesting client can choose to send the request again after a delay or fall back to a traditional read/write style copy.  If there is need to make the mechanism more sophisticated, we can visit that in future patches.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-10-21 18:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2021-47119",
                                "url": "https://ubuntu.com/security/CVE-2021-47119",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: ext4: fix memory leak in ext4_fill_super Buffer head references must be released before calling kill_bdev(); otherwise the buffer head (and its page referenced by b_data) will not be freed by kill_bdev, and subsequently that bh will be leaked. If blocksizes differ, sb_set_blocksize() will kill current buffers and page cache by using kill_bdev(). And then super block will be reread again but using correct blocksize this time. sb_set_blocksize() didn't fully free superblock page and buffer head, and being busy, they were not freed and instead leaked. This can easily be reproduced by calling an infinite loop of: systemctl start <ext4_on_lvm>.mount, and systemctl stop <ext4_on_lvm>.mount ... since systemd creates a cgroup for each slice which it mounts, and the bh leak get amplified by a dying memory cgroup that also never gets freed, and memory consumption is much more easily noticed.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-03-15 21:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-56658",
                                "url": "https://ubuntu.com/security/CVE-2024-56658",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: defer final 'struct net' free in netns dismantle  Ilya reported a slab-use-after-free in dst_destroy [1]  Issue is in xfrm6_net_init() and xfrm4_net_init() :  They copy xfrm[46]_dst_ops_template into net->xfrm.xfrm[46]_dst_ops.  But net structure might be freed before all the dst callbacks are called. So when dst_destroy() calls later :  if (dst->ops->destroy)     dst->ops->destroy(dst);  dst->ops points to the old net->xfrm.xfrm[46]_dst_ops, which has been freed.  See a relevant issue fixed in :  ac888d58869b (\"net: do not delay dst_entries_add() in dst_release()\")  A fix is to queue the 'struct net' to be freed after one another cleanup_net() round (and existing rcu_barrier())  [1]  BUG: KASAN: slab-use-after-free in dst_destroy (net/core/dst.c:112) Read of size 8 at addr ffff8882137ccab0 by task swapper/37/0 Dec 03 05:46:18 kernel: CPU: 37 UID: 0 PID: 0 Comm: swapper/37 Kdump: loaded Not tainted 6.12.0 #67 Hardware name: Red Hat KVM/RHEL, BIOS 1.16.1-1.el9 04/01/2014 Call Trace:  <IRQ> dump_stack_lvl (lib/dump_stack.c:124) print_address_description.constprop.0 (mm/kasan/report.c:378) ? dst_destroy (net/core/dst.c:112) print_report (mm/kasan/report.c:489) ? dst_destroy (net/core/dst.c:112) ? kasan_addr_to_slab (mm/kasan/common.c:37) kasan_report (mm/kasan/report.c:603) ? dst_destroy (net/core/dst.c:112) ? rcu_do_batch (kernel/rcu/tree.c:2567) dst_destroy (net/core/dst.c:112) rcu_do_batch (kernel/rcu/tree.c:2567) ? __pfx_rcu_do_batch (kernel/rcu/tree.c:2491) ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4339 kernel/locking/lockdep.c:4406) rcu_core (kernel/rcu/tree.c:2825) handle_softirqs (kernel/softirq.c:554) __irq_exit_rcu (kernel/softirq.c:589 kernel/softirq.c:428 kernel/softirq.c:637) irq_exit_rcu (kernel/softirq.c:651) sysvec_apic_timer_interrupt (arch/x86/kernel/apic/apic.c:1049 arch/x86/kernel/apic/apic.c:1049)  </IRQ>  <TASK> asm_sysvec_apic_timer_interrupt (./arch/x86/include/asm/idtentry.h:702) RIP: 0010:default_idle (./arch/x86/include/asm/irqflags.h:37 ./arch/x86/include/asm/irqflags.h:92 arch/x86/kernel/process.c:743) Code: 00 4d 29 c8 4c 01 c7 4c 29 c2 e9 6e ff ff ff 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 66 90 0f 00 2d c7 c9 27 00 fb f4 <fa> c3 cc cc cc cc 66 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 90 RSP: 0018:ffff888100d2fe00 EFLAGS: 00000246 RAX: 00000000001870ed RBX: 1ffff110201a5fc2 RCX: ffffffffb61a3e46 RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffffffffb3d4d123 RBP: 0000000000000000 R08: 0000000000000001 R09: ffffed11c7e1835d R10: ffff888e3f0c1aeb R11: 0000000000000000 R12: 0000000000000000 R13: ffff888100d20000 R14: dffffc0000000000 R15: 0000000000000000 ? ct_kernel_exit.constprop.0 (kernel/context_tracking.c:148) ? cpuidle_idle_call (kernel/sched/idle.c:186) default_idle_call (./include/linux/cpuidle.h:143 kernel/sched/idle.c:118) cpuidle_idle_call (kernel/sched/idle.c:186) ? __pfx_cpuidle_idle_call (kernel/sched/idle.c:168) ? lock_release (kernel/locking/lockdep.c:467 kernel/locking/lockdep.c:5848) ? lockdep_hardirqs_on_prepare (kernel/locking/lockdep.c:4347 kernel/locking/lockdep.c:4406) ? tsc_verify_tsc_adjust (arch/x86/kernel/tsc_sync.c:59) do_idle (kernel/sched/idle.c:326) cpu_startup_entry (kernel/sched/idle.c:423 (discriminator 1)) start_secondary (arch/x86/kernel/smpboot.c:202 arch/x86/kernel/smpboot.c:282) ? __pfx_start_secondary (arch/x86/kernel/smpboot.c:232) ? soft_restart_cpu (arch/x86/kernel/head_64.S:452) common_startup_64 (arch/x86/kernel/head_64.S:414)  </TASK> Dec 03 05:46:18 kernel: Allocated by task 12184: kasan_save_stack (mm/kasan/common.c:48) kasan_save_track (./arch/x86/include/asm/current.h:49 mm/kasan/common.c:60 mm/kasan/common.c:69) __kasan_slab_alloc (mm/kasan/common.c:319 mm/kasan/common.c:345) kmem_cache_alloc_noprof (mm/slub.c:4085 mm/slub.c:4134 mm/slub.c:4141) copy_net_ns (net/core/net_namespace.c:421 net/core/net_namespace.c:480) create_new_namespaces ---truncated---",
                                "cve_priority": "high",
                                "cve_public_date": "2024-12-27 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-35864",
                                "url": "https://ubuntu.com/security/CVE-2024-35864",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: smb: client: fix potential UAF in smb2_is_valid_lease_break() Skip sessions that are being teared down (status == SES_EXITING) to avoid UAF.",
                                "cve_priority": "high",
                                "cve_public_date": "2024-05-19 09:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-26928",
                                "url": "https://ubuntu.com/security/CVE-2024-26928",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved: smb: client: fix potential UAF in cifs_debug_files_proc_show() Skip sessions that are being teared down (status == SES_EXITING) to avoid UAF.",
                                "cve_priority": "high",
                                "cve_public_date": "2024-04-28 12:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * focal/linux: 5.4.0-214.234 -proposed tracker (LP: #2102635)",
                            "",
                            "  * CVE-2024-50256",
                            "    - netfilter: nf_reject_ipv6: fix potential crash in nf_send_reset6()",
                            "",
                            "  * CVE-2025-21702",
                            "    - pfifo_tail_enqueue: Drop new packet when sch->limit == 0",
                            "",
                            "  * CVE-2025-21703",
                            "    - netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()",
                            "",
                            "  * CVE-2024-26915",
                            "    - drm/amdgpu: Reset IH OVERFLOW_CLEAR bit",
                            "",
                            "  * CVE-2025-21700",
                            "    - net: sched: Disallow replacing of child qdisc from one parent to another",
                            "",
                            "  * CVE-2024-46826",
                            "    - ELF: fix kernel.randomize_va_space double read",
                            "",
                            "  * CVE-2024-56651",
                            "    - can: hi311x: hi3110_can_ist(): fix potential use-after-free",
                            "",
                            "  * CVE-2024-53237",
                            "    - driver core: Introduce device_find_any_child() helper",
                            "    - Bluetooth: fix use-after-free in device_for_each_child()",
                            "",
                            "  * CVE-2024-35958",
                            "    - net: ena: Fix incorrect descriptor free behavior",
                            "",
                            "  * CVE-2024-49974",
                            "    - NFSD: Limit the number of concurrent async COPY operations",
                            "",
                            "  * CVE-2021-47119",
                            "    - ext4: fix memory leak in ext4_fill_super",
                            "",
                            "  * CVE-2024-56658",
                            "    - net: defer final 'struct net' free in netns dismantle",
                            "",
                            "  * CVE-2024-35864",
                            "    - smb: client: fix potential UAF in smb2_is_valid_lease_break()",
                            "",
                            "  * CVE-2024-35864/CVE-2024-26928",
                            "    - smb: client: fix potential UAF in cifs_debug_files_proc_show()",
                            ""
                        ],
                        "package": "linux",
                        "version": "5.4.0-214.234",
                        "urgency": "medium",
                        "distributions": "focal",
                        "launchpad_bugs_fixed": [
                            2102635
                        ],
                        "author": "Stefan Bader <stefan.bader@canonical.com>",
                        "date": "Fri, 14 Mar 2025 15:42:15 +0100"
                    }
                ],
                "notes": "linux-modules-5.4.0-214-generic version '5.4.0-214.234' (source package linux version '5.4.0-214.234') was added. linux-modules-5.4.0-214-generic version '5.4.0-214.234' has the same source package name, linux, as removed package linux-headers-5.4.0-212. As such we can use the source package version of the removed package, '5.4.0-212.232', 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.4.0-212",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.4.0-212.232",
                    "version": "5.4.0-212.232"
                },
                "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-headers-5.4.0-212-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.4.0-212.232",
                    "version": "5.4.0-212.232"
                },
                "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.4.0-212-generic",
                "from_version": {
                    "source_package_name": "linux-signed",
                    "source_package_version": "5.4.0-212.232",
                    "version": "5.4.0-212.232"
                },
                "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.4.0-212-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.4.0-212.232",
                    "version": "5.4.0-212.232"
                },
                "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 20.04 focal image from daily image serial 20250403 to 20250429",
    "from_series": "focal",
    "to_series": "focal",
    "from_serial": "20250403",
    "to_serial": "20250429",
    "from_manifest_filename": "daily_manifest.previous",
    "to_manifest_filename": "manifest.current"
}