{
    "summary": {
        "snap": {
            "added": [],
            "removed": [],
            "diff": [
                "snapd",
                "lxd"
            ]
        },
        "deb": {
            "added": [
                "linux-headers-5.15.0-173",
                "linux-headers-5.15.0-173-generic",
                "linux-image-5.15.0-173-generic",
                "linux-modules-5.15.0-173-generic"
            ],
            "removed": [
                "linux-headers-5.15.0-171",
                "linux-headers-5.15.0-171-generic",
                "linux-image-5.15.0-171-generic",
                "linux-modules-5.15.0-171-generic"
            ],
            "diff": [
                "bsdextrautils",
                "bsdutils",
                "coreutils",
                "curl",
                "eject",
                "fdisk",
                "git",
                "git-man",
                "libblkid1",
                "libcurl3-gnutls",
                "libcurl4",
                "libfdisk1",
                "libmount1",
                "libnftables1",
                "libnss3",
                "libpython3.10",
                "libpython3.10-minimal",
                "libpython3.10-stdlib",
                "libsmartcols1",
                "libssh-4",
                "libuuid1",
                "linux-headers-generic",
                "linux-headers-virtual",
                "linux-image-virtual",
                "linux-virtual",
                "mount",
                "nftables",
                "openssh-client",
                "openssh-server",
                "openssh-sftp-server",
                "python3-cryptography",
                "python3.10",
                "python3.10-minimal",
                "snapd",
                "sosreport",
                "sudo",
                "util-linux",
                "uuid-runtime",
                "vim",
                "vim-common",
                "vim-runtime",
                "vim-tiny",
                "xxd"
            ]
        }
    },
    "diff": {
        "deb": [
            {
                "name": "bsdextrautils",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.4",
                    "version": "2.37.2-4ubuntu3.4"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.5",
                    "version": "2.37.2-4ubuntu3.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/ubuntu/su-pty-drop-caps.patch: harden 'su --pty' to temporarily lower",
                            "    capabilities while proxying between stdin/stdout and the pty master. This",
                            "    is to avoid su from being used to exploit kernel vulnerabilities.",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.37.2-4ubuntu3.5",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Luci Stanescu <luci.stanescu@canonical.com>",
                        "date": "Fri, 06 Mar 2026 18:10:04 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "bsdutils",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.4",
                    "version": "1:2.37.2-4ubuntu3.4"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.5",
                    "version": "1:2.37.2-4ubuntu3.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/ubuntu/su-pty-drop-caps.patch: harden 'su --pty' to temporarily lower",
                            "    capabilities while proxying between stdin/stdout and the pty master. This",
                            "    is to avoid su from being used to exploit kernel vulnerabilities.",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.37.2-4ubuntu3.5",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Luci Stanescu <luci.stanescu@canonical.com>",
                        "date": "Fri, 06 Mar 2026 18:10:04 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "coreutils",
                "from_version": {
                    "source_package_name": "coreutils",
                    "source_package_version": "8.32-4.1ubuntu1.2",
                    "version": "8.32-4.1ubuntu1.2"
                },
                "to_version": {
                    "source_package_name": "coreutils",
                    "source_package_version": "8.32-4.1ubuntu1.3",
                    "version": "8.32-4.1ubuntu1.3"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2137373
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Fix slow performance of 'du' on large directories (>= 10K files)",
                            "    on Lustre filesystems by skipping inode sorting. The default",
                            "    behaviour of sorting dirents by inode numbers negatively impacts",
                            "    performance on Lustre because it interferes with Lustre's ability",
                            "    to prefetch file metadata via statahead. (LP: #2137373)",
                            "    - d/p/lp2137373-skip-dirent-inode-sorting-for-lustre.patch",
                            ""
                        ],
                        "package": "coreutils",
                        "version": "8.32-4.1ubuntu1.3",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2137373
                        ],
                        "author": "Munir Siddiqui <munir.siddiqui@canonical.com>",
                        "date": "Fri, 23 Jan 2026 15:51:17 +0500"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "curl",
                "from_version": {
                    "source_package_name": "curl",
                    "source_package_version": "7.81.0-1ubuntu1.22",
                    "version": "7.81.0-1ubuntu1.22"
                },
                "to_version": {
                    "source_package_name": "curl",
                    "source_package_version": "7.81.0-1ubuntu1.23",
                    "version": "7.81.0-1ubuntu1.23"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-1965",
                        "url": "https://ubuntu.com/security/CVE-2026-1965",
                        "cve_description": "libcurl can in some circumstances reuse the wrong connection when asked to do an Negotiate-authenticated HTTP or HTTPS request.  libcurl features a pool of recent connections so that subsequent requests can reuse an existing connection to avoid overhead.  When reusing a connection a range of criterion must first be met. Due to a logical error in the code, a request that was issued by an application could wrongfully reuse an existing connection to the same server that was authenticated using different credentials. One underlying reason being that Negotiate sometimes authenticates *connections* and not *requests*, contrary to how HTTP is designed to work.  An application that allows Negotiate authentication to a server (that responds wanting Negotiate) with `user1:password1` and then does another operation to the same server also using Negotiate but with `user2:password2` (while the previous connection is still alive) - the second request wrongly reused the same connection and since it then sees that the Negotiate negotiation is already made, it just sends the request over that connection thinking it uses the user2 credentials when it is in fact still using the connection authenticated for user1...  The set of authentication methods to use is set with  `CURLOPT_HTTPAUTH`.  Applications can disable libcurl's reuse of connections and thus mitigate this problem, by using one of the following libcurl options to alter how connections are or are not reused: `CURLOPT_FRESH_CONNECT`, `CURLOPT_MAXCONNECTS` and `CURLMOPT_MAX_HOST_CONNECTIONS` (if using the curl_multi API).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-11 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-3783",
                        "url": "https://ubuntu.com/security/CVE-2026-3783",
                        "cve_description": "When an OAuth2 bearer token is used for an HTTP(S) transfer, and that transfer performs a redirect to a second URL, curl could leak that token to the second hostname under some circumstances.  If the hostname that the first request is redirected to has information in the used .netrc file, with either of the `machine` or `default` keywords, curl would pass on the bearer token set for the first host also to the second one.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-11 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-3784",
                        "url": "https://ubuntu.com/security/CVE-2026-3784",
                        "cve_description": "curl would wrongly reuse an existing HTTP proxy connection doing CONNECT to a server, even if the new request uses different credentials for the HTTP proxy. The proper behavior is to create or use a separate connection.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-03-11 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-0167",
                        "url": "https://ubuntu.com/security/CVE-2025-0167",
                        "cve_description": "When asked to use a `.netrc` file for credentials **and** to follow HTTP redirects, curl could leak the password used for the first host to the followed-to host under certain circumstances.  This flaw only manifests itself if the netrc file has a `default` entry that omits both login and password. A rare circumstance.",
                        "cve_priority": "low",
                        "cve_public_date": "2025-02-05 10:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-1965",
                                "url": "https://ubuntu.com/security/CVE-2026-1965",
                                "cve_description": "libcurl can in some circumstances reuse the wrong connection when asked to do an Negotiate-authenticated HTTP or HTTPS request.  libcurl features a pool of recent connections so that subsequent requests can reuse an existing connection to avoid overhead.  When reusing a connection a range of criterion must first be met. Due to a logical error in the code, a request that was issued by an application could wrongfully reuse an existing connection to the same server that was authenticated using different credentials. One underlying reason being that Negotiate sometimes authenticates *connections* and not *requests*, contrary to how HTTP is designed to work.  An application that allows Negotiate authentication to a server (that responds wanting Negotiate) with `user1:password1` and then does another operation to the same server also using Negotiate but with `user2:password2` (while the previous connection is still alive) - the second request wrongly reused the same connection and since it then sees that the Negotiate negotiation is already made, it just sends the request over that connection thinking it uses the user2 credentials when it is in fact still using the connection authenticated for user1...  The set of authentication methods to use is set with  `CURLOPT_HTTPAUTH`.  Applications can disable libcurl's reuse of connections and thus mitigate this problem, by using one of the following libcurl options to alter how connections are or are not reused: `CURLOPT_FRESH_CONNECT`, `CURLOPT_MAXCONNECTS` and `CURLMOPT_MAX_HOST_CONNECTIONS` (if using the curl_multi API).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-11 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-3783",
                                "url": "https://ubuntu.com/security/CVE-2026-3783",
                                "cve_description": "When an OAuth2 bearer token is used for an HTTP(S) transfer, and that transfer performs a redirect to a second URL, curl could leak that token to the second hostname under some circumstances.  If the hostname that the first request is redirected to has information in the used .netrc file, with either of the `machine` or `default` keywords, curl would pass on the bearer token set for the first host also to the second one.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-11 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-3784",
                                "url": "https://ubuntu.com/security/CVE-2026-3784",
                                "cve_description": "curl would wrongly reuse an existing HTTP proxy connection doing CONNECT to a server, even if the new request uses different credentials for the HTTP proxy. The proper behavior is to create or use a separate connection.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-03-11 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-0167",
                                "url": "https://ubuntu.com/security/CVE-2025-0167",
                                "cve_description": "When asked to use a `.netrc` file for credentials **and** to follow HTTP redirects, curl could leak the password used for the first host to the followed-to host under certain circumstances.  This flaw only manifests itself if the netrc file has a `default` entry that omits both login and password. A rare circumstance.",
                                "cve_priority": "low",
                                "cve_public_date": "2025-02-05 10:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: bad reuse of HTTP Negotiate connection",
                            "    - debian/patches/CVE-2026-1965-1.patch: fix reuse of connections using",
                            "      HTTP Negotiate in lib/url.c.",
                            "    - debian/patches/CVE-2026-1965-2.patch: fix copy and paste",
                            "      url_match_auth_nego mistake in lib/url.c.",
                            "    - CVE-2026-1965",
                            "  * SECURITY UPDATE: token leak with redirect and netrc",
                            "    - debian/patches/CVE-2026-3783.patch: only send bearer if auth is",
                            "      allowed in lib/http.c, tests/data/Makefile.inc, tests/data/test2006.",
                            "    - CVE-2026-3783",
                            "  * SECURITY UPDATE: wrong proxy connection reuse with credentials",
                            "    - debian/patches/CVE-2026-3784.patch: add additional tests in",
                            "      lib/url.c.",
                            "    - CVE-2026-3784",
                            "  * SECURITY UPDATE: netrc and default credential leak",
                            "    - debian/patches/CVE-2025-0167.patch: 'default' with no credentials is",
                            "      not a match in lib/netrc.c, tests/data/Makefile.inc,",
                            "      tests/data/test486.",
                            "    - CVE-2025-0167",
                            ""
                        ],
                        "package": "curl",
                        "version": "7.81.0-1ubuntu1.23",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Tue, 10 Mar 2026 14:25:36 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "eject",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.4",
                    "version": "2.37.2-4ubuntu3.4"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.5",
                    "version": "2.37.2-4ubuntu3.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/ubuntu/su-pty-drop-caps.patch: harden 'su --pty' to temporarily lower",
                            "    capabilities while proxying between stdin/stdout and the pty master. This",
                            "    is to avoid su from being used to exploit kernel vulnerabilities.",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.37.2-4ubuntu3.5",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Luci Stanescu <luci.stanescu@canonical.com>",
                        "date": "Fri, 06 Mar 2026 18:10:04 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "fdisk",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.4",
                    "version": "2.37.2-4ubuntu3.4"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.5",
                    "version": "2.37.2-4ubuntu3.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/ubuntu/su-pty-drop-caps.patch: harden 'su --pty' to temporarily lower",
                            "    capabilities while proxying between stdin/stdout and the pty master. This",
                            "    is to avoid su from being used to exploit kernel vulnerabilities.",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.37.2-4ubuntu3.5",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Luci Stanescu <luci.stanescu@canonical.com>",
                        "date": "Fri, 06 Mar 2026 18:10:04 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "git",
                "from_version": {
                    "source_package_name": "git",
                    "source_package_version": "1:2.34.1-1ubuntu1.16",
                    "version": "1:2.34.1-1ubuntu1.16"
                },
                "to_version": {
                    "source_package_name": "git",
                    "source_package_version": "1:2.34.1-1ubuntu1.17",
                    "version": "1:2.34.1-1ubuntu1.17"
                },
                "cves": [
                    {
                        "cve": "CVE-2022-24765",
                        "url": "https://ubuntu.com/security/CVE-2022-24765",
                        "cve_description": "Git for Windows is a fork of Git containing Windows-specific patches. This vulnerability affects users working on multi-user machines, where untrusted parties have write access to the same hard disk. Those untrusted parties could create the folder `C:\\.git`, which would be picked up by Git operations run supposedly outside a repository while searching for a Git directory. Git would then respect any config in said Git directory. Git Bash users who set `GIT_PS1_SHOWDIRTYSTATE` are vulnerable as well. Users who installed posh-gitare vulnerable simply by starting a PowerShell. Users of IDEs such as Visual Studio are vulnerable: simply creating a new project would already read and respect the config specified in `C:\\.git\\config`. Users of the Microsoft fork of Git are vulnerable simply by starting a Git Bash. The problem has been patched in Git for Windows v2.35.2. Users unable to upgrade may create the folder `.git` on all drives where Git commands are run, and remove read/write access from those folders as a workaround. Alternatively, define or extend `GIT_CEILING_DIRECTORIES` to cover the _parent_ directory of the user profile, e.g. `C:\\Users` if the user profile is located in `C:\\Users\\my-user-name`.",
                        "cve_priority": "medium",
                        "cve_public_date": "2022-04-12 18:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2142790
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2022-24765",
                                "url": "https://ubuntu.com/security/CVE-2022-24765",
                                "cve_description": "Git for Windows is a fork of Git containing Windows-specific patches. This vulnerability affects users working on multi-user machines, where untrusted parties have write access to the same hard disk. Those untrusted parties could create the folder `C:\\.git`, which would be picked up by Git operations run supposedly outside a repository while searching for a Git directory. Git would then respect any config in said Git directory. Git Bash users who set `GIT_PS1_SHOWDIRTYSTATE` are vulnerable as well. Users who installed posh-gitare vulnerable simply by starting a PowerShell. Users of IDEs such as Visual Studio are vulnerable: simply creating a new project would already read and respect the config specified in `C:\\.git\\config`. Users of the Microsoft fork of Git are vulnerable simply by starting a Git Bash. The problem has been patched in Git for Windows v2.35.2. Users unable to upgrade may create the folder `.git` on all drives where Git commands are run, and remove read/write access from those folders as a workaround. Alternatively, define or extend `GIT_CEILING_DIRECTORIES` to cover the _parent_ directory of the user profile, e.g. `C:\\Users` if the user profile is located in `C:\\Users\\my-user-name`.",
                                "cve_priority": "medium",
                                "cve_public_date": "2022-04-12 18:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY REGRESSION: Include not respected for protected configuration.",
                            "    (LP: #2142790)",
                            "    - debian/patches/CVE-2022-24765-fix3.patch: Use config_with_options in",
                            "      read_protected_config in config.c.",
                            ""
                        ],
                        "package": "git",
                        "version": "1:2.34.1-1ubuntu1.17",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [
                            2142790
                        ],
                        "author": "Hlib Korzhynskyy <hlib.korzhynskyy@canonical.com>",
                        "date": "Thu, 26 Feb 2026 16:19:53 -0330"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "git-man",
                "from_version": {
                    "source_package_name": "git",
                    "source_package_version": "1:2.34.1-1ubuntu1.16",
                    "version": "1:2.34.1-1ubuntu1.16"
                },
                "to_version": {
                    "source_package_name": "git",
                    "source_package_version": "1:2.34.1-1ubuntu1.17",
                    "version": "1:2.34.1-1ubuntu1.17"
                },
                "cves": [
                    {
                        "cve": "CVE-2022-24765",
                        "url": "https://ubuntu.com/security/CVE-2022-24765",
                        "cve_description": "Git for Windows is a fork of Git containing Windows-specific patches. This vulnerability affects users working on multi-user machines, where untrusted parties have write access to the same hard disk. Those untrusted parties could create the folder `C:\\.git`, which would be picked up by Git operations run supposedly outside a repository while searching for a Git directory. Git would then respect any config in said Git directory. Git Bash users who set `GIT_PS1_SHOWDIRTYSTATE` are vulnerable as well. Users who installed posh-gitare vulnerable simply by starting a PowerShell. Users of IDEs such as Visual Studio are vulnerable: simply creating a new project would already read and respect the config specified in `C:\\.git\\config`. Users of the Microsoft fork of Git are vulnerable simply by starting a Git Bash. The problem has been patched in Git for Windows v2.35.2. Users unable to upgrade may create the folder `.git` on all drives where Git commands are run, and remove read/write access from those folders as a workaround. Alternatively, define or extend `GIT_CEILING_DIRECTORIES` to cover the _parent_ directory of the user profile, e.g. `C:\\Users` if the user profile is located in `C:\\Users\\my-user-name`.",
                        "cve_priority": "medium",
                        "cve_public_date": "2022-04-12 18:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2142790
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2022-24765",
                                "url": "https://ubuntu.com/security/CVE-2022-24765",
                                "cve_description": "Git for Windows is a fork of Git containing Windows-specific patches. This vulnerability affects users working on multi-user machines, where untrusted parties have write access to the same hard disk. Those untrusted parties could create the folder `C:\\.git`, which would be picked up by Git operations run supposedly outside a repository while searching for a Git directory. Git would then respect any config in said Git directory. Git Bash users who set `GIT_PS1_SHOWDIRTYSTATE` are vulnerable as well. Users who installed posh-gitare vulnerable simply by starting a PowerShell. Users of IDEs such as Visual Studio are vulnerable: simply creating a new project would already read and respect the config specified in `C:\\.git\\config`. Users of the Microsoft fork of Git are vulnerable simply by starting a Git Bash. The problem has been patched in Git for Windows v2.35.2. Users unable to upgrade may create the folder `.git` on all drives where Git commands are run, and remove read/write access from those folders as a workaround. Alternatively, define or extend `GIT_CEILING_DIRECTORIES` to cover the _parent_ directory of the user profile, e.g. `C:\\Users` if the user profile is located in `C:\\Users\\my-user-name`.",
                                "cve_priority": "medium",
                                "cve_public_date": "2022-04-12 18:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY REGRESSION: Include not respected for protected configuration.",
                            "    (LP: #2142790)",
                            "    - debian/patches/CVE-2022-24765-fix3.patch: Use config_with_options in",
                            "      read_protected_config in config.c.",
                            ""
                        ],
                        "package": "git",
                        "version": "1:2.34.1-1ubuntu1.17",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [
                            2142790
                        ],
                        "author": "Hlib Korzhynskyy <hlib.korzhynskyy@canonical.com>",
                        "date": "Thu, 26 Feb 2026 16:19:53 -0330"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libblkid1",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.4",
                    "version": "2.37.2-4ubuntu3.4"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.5",
                    "version": "2.37.2-4ubuntu3.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/ubuntu/su-pty-drop-caps.patch: harden 'su --pty' to temporarily lower",
                            "    capabilities while proxying between stdin/stdout and the pty master. This",
                            "    is to avoid su from being used to exploit kernel vulnerabilities.",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.37.2-4ubuntu3.5",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Luci Stanescu <luci.stanescu@canonical.com>",
                        "date": "Fri, 06 Mar 2026 18:10:04 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libcurl3-gnutls",
                "from_version": {
                    "source_package_name": "curl",
                    "source_package_version": "7.81.0-1ubuntu1.22",
                    "version": "7.81.0-1ubuntu1.22"
                },
                "to_version": {
                    "source_package_name": "curl",
                    "source_package_version": "7.81.0-1ubuntu1.23",
                    "version": "7.81.0-1ubuntu1.23"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-1965",
                        "url": "https://ubuntu.com/security/CVE-2026-1965",
                        "cve_description": "libcurl can in some circumstances reuse the wrong connection when asked to do an Negotiate-authenticated HTTP or HTTPS request.  libcurl features a pool of recent connections so that subsequent requests can reuse an existing connection to avoid overhead.  When reusing a connection a range of criterion must first be met. Due to a logical error in the code, a request that was issued by an application could wrongfully reuse an existing connection to the same server that was authenticated using different credentials. One underlying reason being that Negotiate sometimes authenticates *connections* and not *requests*, contrary to how HTTP is designed to work.  An application that allows Negotiate authentication to a server (that responds wanting Negotiate) with `user1:password1` and then does another operation to the same server also using Negotiate but with `user2:password2` (while the previous connection is still alive) - the second request wrongly reused the same connection and since it then sees that the Negotiate negotiation is already made, it just sends the request over that connection thinking it uses the user2 credentials when it is in fact still using the connection authenticated for user1...  The set of authentication methods to use is set with  `CURLOPT_HTTPAUTH`.  Applications can disable libcurl's reuse of connections and thus mitigate this problem, by using one of the following libcurl options to alter how connections are or are not reused: `CURLOPT_FRESH_CONNECT`, `CURLOPT_MAXCONNECTS` and `CURLMOPT_MAX_HOST_CONNECTIONS` (if using the curl_multi API).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-11 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-3783",
                        "url": "https://ubuntu.com/security/CVE-2026-3783",
                        "cve_description": "When an OAuth2 bearer token is used for an HTTP(S) transfer, and that transfer performs a redirect to a second URL, curl could leak that token to the second hostname under some circumstances.  If the hostname that the first request is redirected to has information in the used .netrc file, with either of the `machine` or `default` keywords, curl would pass on the bearer token set for the first host also to the second one.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-11 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-3784",
                        "url": "https://ubuntu.com/security/CVE-2026-3784",
                        "cve_description": "curl would wrongly reuse an existing HTTP proxy connection doing CONNECT to a server, even if the new request uses different credentials for the HTTP proxy. The proper behavior is to create or use a separate connection.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-03-11 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-0167",
                        "url": "https://ubuntu.com/security/CVE-2025-0167",
                        "cve_description": "When asked to use a `.netrc` file for credentials **and** to follow HTTP redirects, curl could leak the password used for the first host to the followed-to host under certain circumstances.  This flaw only manifests itself if the netrc file has a `default` entry that omits both login and password. A rare circumstance.",
                        "cve_priority": "low",
                        "cve_public_date": "2025-02-05 10:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-1965",
                                "url": "https://ubuntu.com/security/CVE-2026-1965",
                                "cve_description": "libcurl can in some circumstances reuse the wrong connection when asked to do an Negotiate-authenticated HTTP or HTTPS request.  libcurl features a pool of recent connections so that subsequent requests can reuse an existing connection to avoid overhead.  When reusing a connection a range of criterion must first be met. Due to a logical error in the code, a request that was issued by an application could wrongfully reuse an existing connection to the same server that was authenticated using different credentials. One underlying reason being that Negotiate sometimes authenticates *connections* and not *requests*, contrary to how HTTP is designed to work.  An application that allows Negotiate authentication to a server (that responds wanting Negotiate) with `user1:password1` and then does another operation to the same server also using Negotiate but with `user2:password2` (while the previous connection is still alive) - the second request wrongly reused the same connection and since it then sees that the Negotiate negotiation is already made, it just sends the request over that connection thinking it uses the user2 credentials when it is in fact still using the connection authenticated for user1...  The set of authentication methods to use is set with  `CURLOPT_HTTPAUTH`.  Applications can disable libcurl's reuse of connections and thus mitigate this problem, by using one of the following libcurl options to alter how connections are or are not reused: `CURLOPT_FRESH_CONNECT`, `CURLOPT_MAXCONNECTS` and `CURLMOPT_MAX_HOST_CONNECTIONS` (if using the curl_multi API).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-11 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-3783",
                                "url": "https://ubuntu.com/security/CVE-2026-3783",
                                "cve_description": "When an OAuth2 bearer token is used for an HTTP(S) transfer, and that transfer performs a redirect to a second URL, curl could leak that token to the second hostname under some circumstances.  If the hostname that the first request is redirected to has information in the used .netrc file, with either of the `machine` or `default` keywords, curl would pass on the bearer token set for the first host also to the second one.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-11 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-3784",
                                "url": "https://ubuntu.com/security/CVE-2026-3784",
                                "cve_description": "curl would wrongly reuse an existing HTTP proxy connection doing CONNECT to a server, even if the new request uses different credentials for the HTTP proxy. The proper behavior is to create or use a separate connection.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-03-11 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-0167",
                                "url": "https://ubuntu.com/security/CVE-2025-0167",
                                "cve_description": "When asked to use a `.netrc` file for credentials **and** to follow HTTP redirects, curl could leak the password used for the first host to the followed-to host under certain circumstances.  This flaw only manifests itself if the netrc file has a `default` entry that omits both login and password. A rare circumstance.",
                                "cve_priority": "low",
                                "cve_public_date": "2025-02-05 10:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: bad reuse of HTTP Negotiate connection",
                            "    - debian/patches/CVE-2026-1965-1.patch: fix reuse of connections using",
                            "      HTTP Negotiate in lib/url.c.",
                            "    - debian/patches/CVE-2026-1965-2.patch: fix copy and paste",
                            "      url_match_auth_nego mistake in lib/url.c.",
                            "    - CVE-2026-1965",
                            "  * SECURITY UPDATE: token leak with redirect and netrc",
                            "    - debian/patches/CVE-2026-3783.patch: only send bearer if auth is",
                            "      allowed in lib/http.c, tests/data/Makefile.inc, tests/data/test2006.",
                            "    - CVE-2026-3783",
                            "  * SECURITY UPDATE: wrong proxy connection reuse with credentials",
                            "    - debian/patches/CVE-2026-3784.patch: add additional tests in",
                            "      lib/url.c.",
                            "    - CVE-2026-3784",
                            "  * SECURITY UPDATE: netrc and default credential leak",
                            "    - debian/patches/CVE-2025-0167.patch: 'default' with no credentials is",
                            "      not a match in lib/netrc.c, tests/data/Makefile.inc,",
                            "      tests/data/test486.",
                            "    - CVE-2025-0167",
                            ""
                        ],
                        "package": "curl",
                        "version": "7.81.0-1ubuntu1.23",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Tue, 10 Mar 2026 14:25:36 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libcurl4",
                "from_version": {
                    "source_package_name": "curl",
                    "source_package_version": "7.81.0-1ubuntu1.22",
                    "version": "7.81.0-1ubuntu1.22"
                },
                "to_version": {
                    "source_package_name": "curl",
                    "source_package_version": "7.81.0-1ubuntu1.23",
                    "version": "7.81.0-1ubuntu1.23"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-1965",
                        "url": "https://ubuntu.com/security/CVE-2026-1965",
                        "cve_description": "libcurl can in some circumstances reuse the wrong connection when asked to do an Negotiate-authenticated HTTP or HTTPS request.  libcurl features a pool of recent connections so that subsequent requests can reuse an existing connection to avoid overhead.  When reusing a connection a range of criterion must first be met. Due to a logical error in the code, a request that was issued by an application could wrongfully reuse an existing connection to the same server that was authenticated using different credentials. One underlying reason being that Negotiate sometimes authenticates *connections* and not *requests*, contrary to how HTTP is designed to work.  An application that allows Negotiate authentication to a server (that responds wanting Negotiate) with `user1:password1` and then does another operation to the same server also using Negotiate but with `user2:password2` (while the previous connection is still alive) - the second request wrongly reused the same connection and since it then sees that the Negotiate negotiation is already made, it just sends the request over that connection thinking it uses the user2 credentials when it is in fact still using the connection authenticated for user1...  The set of authentication methods to use is set with  `CURLOPT_HTTPAUTH`.  Applications can disable libcurl's reuse of connections and thus mitigate this problem, by using one of the following libcurl options to alter how connections are or are not reused: `CURLOPT_FRESH_CONNECT`, `CURLOPT_MAXCONNECTS` and `CURLMOPT_MAX_HOST_CONNECTIONS` (if using the curl_multi API).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-11 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-3783",
                        "url": "https://ubuntu.com/security/CVE-2026-3783",
                        "cve_description": "When an OAuth2 bearer token is used for an HTTP(S) transfer, and that transfer performs a redirect to a second URL, curl could leak that token to the second hostname under some circumstances.  If the hostname that the first request is redirected to has information in the used .netrc file, with either of the `machine` or `default` keywords, curl would pass on the bearer token set for the first host also to the second one.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-11 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-3784",
                        "url": "https://ubuntu.com/security/CVE-2026-3784",
                        "cve_description": "curl would wrongly reuse an existing HTTP proxy connection doing CONNECT to a server, even if the new request uses different credentials for the HTTP proxy. The proper behavior is to create or use a separate connection.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-03-11 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-0167",
                        "url": "https://ubuntu.com/security/CVE-2025-0167",
                        "cve_description": "When asked to use a `.netrc` file for credentials **and** to follow HTTP redirects, curl could leak the password used for the first host to the followed-to host under certain circumstances.  This flaw only manifests itself if the netrc file has a `default` entry that omits both login and password. A rare circumstance.",
                        "cve_priority": "low",
                        "cve_public_date": "2025-02-05 10:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-1965",
                                "url": "https://ubuntu.com/security/CVE-2026-1965",
                                "cve_description": "libcurl can in some circumstances reuse the wrong connection when asked to do an Negotiate-authenticated HTTP or HTTPS request.  libcurl features a pool of recent connections so that subsequent requests can reuse an existing connection to avoid overhead.  When reusing a connection a range of criterion must first be met. Due to a logical error in the code, a request that was issued by an application could wrongfully reuse an existing connection to the same server that was authenticated using different credentials. One underlying reason being that Negotiate sometimes authenticates *connections* and not *requests*, contrary to how HTTP is designed to work.  An application that allows Negotiate authentication to a server (that responds wanting Negotiate) with `user1:password1` and then does another operation to the same server also using Negotiate but with `user2:password2` (while the previous connection is still alive) - the second request wrongly reused the same connection and since it then sees that the Negotiate negotiation is already made, it just sends the request over that connection thinking it uses the user2 credentials when it is in fact still using the connection authenticated for user1...  The set of authentication methods to use is set with  `CURLOPT_HTTPAUTH`.  Applications can disable libcurl's reuse of connections and thus mitigate this problem, by using one of the following libcurl options to alter how connections are or are not reused: `CURLOPT_FRESH_CONNECT`, `CURLOPT_MAXCONNECTS` and `CURLMOPT_MAX_HOST_CONNECTIONS` (if using the curl_multi API).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-11 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-3783",
                                "url": "https://ubuntu.com/security/CVE-2026-3783",
                                "cve_description": "When an OAuth2 bearer token is used for an HTTP(S) transfer, and that transfer performs a redirect to a second URL, curl could leak that token to the second hostname under some circumstances.  If the hostname that the first request is redirected to has information in the used .netrc file, with either of the `machine` or `default` keywords, curl would pass on the bearer token set for the first host also to the second one.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-11 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-3784",
                                "url": "https://ubuntu.com/security/CVE-2026-3784",
                                "cve_description": "curl would wrongly reuse an existing HTTP proxy connection doing CONNECT to a server, even if the new request uses different credentials for the HTTP proxy. The proper behavior is to create or use a separate connection.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-03-11 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-0167",
                                "url": "https://ubuntu.com/security/CVE-2025-0167",
                                "cve_description": "When asked to use a `.netrc` file for credentials **and** to follow HTTP redirects, curl could leak the password used for the first host to the followed-to host under certain circumstances.  This flaw only manifests itself if the netrc file has a `default` entry that omits both login and password. A rare circumstance.",
                                "cve_priority": "low",
                                "cve_public_date": "2025-02-05 10:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: bad reuse of HTTP Negotiate connection",
                            "    - debian/patches/CVE-2026-1965-1.patch: fix reuse of connections using",
                            "      HTTP Negotiate in lib/url.c.",
                            "    - debian/patches/CVE-2026-1965-2.patch: fix copy and paste",
                            "      url_match_auth_nego mistake in lib/url.c.",
                            "    - CVE-2026-1965",
                            "  * SECURITY UPDATE: token leak with redirect and netrc",
                            "    - debian/patches/CVE-2026-3783.patch: only send bearer if auth is",
                            "      allowed in lib/http.c, tests/data/Makefile.inc, tests/data/test2006.",
                            "    - CVE-2026-3783",
                            "  * SECURITY UPDATE: wrong proxy connection reuse with credentials",
                            "    - debian/patches/CVE-2026-3784.patch: add additional tests in",
                            "      lib/url.c.",
                            "    - CVE-2026-3784",
                            "  * SECURITY UPDATE: netrc and default credential leak",
                            "    - debian/patches/CVE-2025-0167.patch: 'default' with no credentials is",
                            "      not a match in lib/netrc.c, tests/data/Makefile.inc,",
                            "      tests/data/test486.",
                            "    - CVE-2025-0167",
                            ""
                        ],
                        "package": "curl",
                        "version": "7.81.0-1ubuntu1.23",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Tue, 10 Mar 2026 14:25:36 -0400"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libfdisk1",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.4",
                    "version": "2.37.2-4ubuntu3.4"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.5",
                    "version": "2.37.2-4ubuntu3.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/ubuntu/su-pty-drop-caps.patch: harden 'su --pty' to temporarily lower",
                            "    capabilities while proxying between stdin/stdout and the pty master. This",
                            "    is to avoid su from being used to exploit kernel vulnerabilities.",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.37.2-4ubuntu3.5",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Luci Stanescu <luci.stanescu@canonical.com>",
                        "date": "Fri, 06 Mar 2026 18:10:04 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libmount1",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.4",
                    "version": "2.37.2-4ubuntu3.4"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.5",
                    "version": "2.37.2-4ubuntu3.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/ubuntu/su-pty-drop-caps.patch: harden 'su --pty' to temporarily lower",
                            "    capabilities while proxying between stdin/stdout and the pty master. This",
                            "    is to avoid su from being used to exploit kernel vulnerabilities.",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.37.2-4ubuntu3.5",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Luci Stanescu <luci.stanescu@canonical.com>",
                        "date": "Fri, 06 Mar 2026 18:10:04 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libnftables1",
                "from_version": {
                    "source_package_name": "nftables",
                    "source_package_version": "1.0.2-1ubuntu3",
                    "version": "1.0.2-1ubuntu3"
                },
                "to_version": {
                    "source_package_name": "nftables",
                    "source_package_version": "1.0.2-1ubuntu3.1",
                    "version": "1.0.2-1ubuntu3.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2142552
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * netlink: fix crash when ops doesn't support udata (LP: #2142552)",
                            ""
                        ],
                        "package": "nftables",
                        "version": "1.0.2-1ubuntu3.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2142552
                        ],
                        "author": "Dimitri John Ledkov <xnox@ubuntu.com>",
                        "date": "Tue, 24 Feb 2026 08:38:43 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libnss3",
                "from_version": {
                    "source_package_name": "nss",
                    "source_package_version": "2:3.98-0ubuntu0.22.04.2",
                    "version": "2:3.98-0ubuntu0.22.04.2"
                },
                "to_version": {
                    "source_package_name": "nss",
                    "source_package_version": "2:3.98-0ubuntu0.22.04.3",
                    "version": "2:3.98-0ubuntu0.22.04.3"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-2781",
                        "url": "https://ubuntu.com/security/CVE-2026-2781",
                        "cve_description": "Integer overflow in the Libraries component in NSS. This vulnerability affects Firefox < 148, Firefox ESR < 140.8, Thunderbird < 148, and Thunderbird < 140.8.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-24 14:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-2781",
                                "url": "https://ubuntu.com/security/CVE-2026-2781",
                                "cve_description": "Integer overflow in the Libraries component in NSS. This vulnerability affects Firefox < 148, Firefox ESR < 140.8, Thunderbird < 148, and Thunderbird < 140.8.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-24 14:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: integer overflow in platform-independent ghash",
                            "    - debian/patches/CVE-2026-2781.patch: properly cast len in",
                            "      nss/lib/freebl/gcm.c.",
                            "    - CVE-2026-2781",
                            ""
                        ],
                        "package": "nss",
                        "version": "2:3.98-0ubuntu0.22.04.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Thu, 26 Feb 2026 13:28:10 -0500"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpython3.10",
                "from_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.14",
                    "version": "3.10.12-1~22.04.14"
                },
                "to_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.15",
                    "version": "3.10.12-1~22.04.15"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-15366",
                        "url": "https://ubuntu.com/security/CVE-2025-15366",
                        "cve_description": "The imaplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-15367",
                        "url": "https://ubuntu.com/security/CVE-2025-15367",
                        "cve_description": "The poplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-0865",
                        "url": "https://ubuntu.com/security/CVE-2026-0865",
                        "cve_description": "User-controlled header names and values containing newlines can allow injecting HTTP headers.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-15366",
                                "url": "https://ubuntu.com/security/CVE-2025-15366",
                                "cve_description": "The imaplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-15367",
                                "url": "https://ubuntu.com/security/CVE-2025-15367",
                                "cve_description": "The poplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-0865",
                                "url": "https://ubuntu.com/security/CVE-2026-0865",
                                "cve_description": "User-controlled header names and values containing newlines can allow injecting HTTP headers.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY REGRESSION: Revert patch for CVE-2025-15366",
                            "    - debian/patches/CVE-2025-15366.patch: Reverted. Patch breaks RFC",
                            "      9051 IMAP conformance and introduces behavior regressions avoided",
                            "      by upstream.",
                            "    - CVE-2025-15366",
                            "  * SECURITY REGRESSION: Revert patch for CVE-2025-15367",
                            "    - debian/patches/CVE-2025-15367.patch: Reverted to prevent behavior",
                            "      regressions, aligning with upstream backporting decisions.",
                            "    - CVE-2025-15367",
                            "  * SECURITY REGRESSION: Allow HTAB in wsgiref header values",
                            "    - debian/patches/CVE-2026-0865-2.patch: Permit HTAB in header values",
                            "      (excluding names) in Lib/wsgiref/headers.py, add test coverage.",
                            "    - CVE-2026-0865",
                            ""
                        ],
                        "package": "python3.10",
                        "version": "3.10.12-1~22.04.15",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Vyom Yadav <vyom.yadav@canonical.com>",
                        "date": "Tue, 03 Mar 2026 17:26:32 +0530"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpython3.10-minimal",
                "from_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.14",
                    "version": "3.10.12-1~22.04.14"
                },
                "to_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.15",
                    "version": "3.10.12-1~22.04.15"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-15366",
                        "url": "https://ubuntu.com/security/CVE-2025-15366",
                        "cve_description": "The imaplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-15367",
                        "url": "https://ubuntu.com/security/CVE-2025-15367",
                        "cve_description": "The poplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-0865",
                        "url": "https://ubuntu.com/security/CVE-2026-0865",
                        "cve_description": "User-controlled header names and values containing newlines can allow injecting HTTP headers.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-15366",
                                "url": "https://ubuntu.com/security/CVE-2025-15366",
                                "cve_description": "The imaplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-15367",
                                "url": "https://ubuntu.com/security/CVE-2025-15367",
                                "cve_description": "The poplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-0865",
                                "url": "https://ubuntu.com/security/CVE-2026-0865",
                                "cve_description": "User-controlled header names and values containing newlines can allow injecting HTTP headers.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY REGRESSION: Revert patch for CVE-2025-15366",
                            "    - debian/patches/CVE-2025-15366.patch: Reverted. Patch breaks RFC",
                            "      9051 IMAP conformance and introduces behavior regressions avoided",
                            "      by upstream.",
                            "    - CVE-2025-15366",
                            "  * SECURITY REGRESSION: Revert patch for CVE-2025-15367",
                            "    - debian/patches/CVE-2025-15367.patch: Reverted to prevent behavior",
                            "      regressions, aligning with upstream backporting decisions.",
                            "    - CVE-2025-15367",
                            "  * SECURITY REGRESSION: Allow HTAB in wsgiref header values",
                            "    - debian/patches/CVE-2026-0865-2.patch: Permit HTAB in header values",
                            "      (excluding names) in Lib/wsgiref/headers.py, add test coverage.",
                            "    - CVE-2026-0865",
                            ""
                        ],
                        "package": "python3.10",
                        "version": "3.10.12-1~22.04.15",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Vyom Yadav <vyom.yadav@canonical.com>",
                        "date": "Tue, 03 Mar 2026 17:26:32 +0530"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libpython3.10-stdlib",
                "from_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.14",
                    "version": "3.10.12-1~22.04.14"
                },
                "to_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.15",
                    "version": "3.10.12-1~22.04.15"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-15366",
                        "url": "https://ubuntu.com/security/CVE-2025-15366",
                        "cve_description": "The imaplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-15367",
                        "url": "https://ubuntu.com/security/CVE-2025-15367",
                        "cve_description": "The poplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-0865",
                        "url": "https://ubuntu.com/security/CVE-2026-0865",
                        "cve_description": "User-controlled header names and values containing newlines can allow injecting HTTP headers.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-15366",
                                "url": "https://ubuntu.com/security/CVE-2025-15366",
                                "cve_description": "The imaplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-15367",
                                "url": "https://ubuntu.com/security/CVE-2025-15367",
                                "cve_description": "The poplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-0865",
                                "url": "https://ubuntu.com/security/CVE-2026-0865",
                                "cve_description": "User-controlled header names and values containing newlines can allow injecting HTTP headers.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY REGRESSION: Revert patch for CVE-2025-15366",
                            "    - debian/patches/CVE-2025-15366.patch: Reverted. Patch breaks RFC",
                            "      9051 IMAP conformance and introduces behavior regressions avoided",
                            "      by upstream.",
                            "    - CVE-2025-15366",
                            "  * SECURITY REGRESSION: Revert patch for CVE-2025-15367",
                            "    - debian/patches/CVE-2025-15367.patch: Reverted to prevent behavior",
                            "      regressions, aligning with upstream backporting decisions.",
                            "    - CVE-2025-15367",
                            "  * SECURITY REGRESSION: Allow HTAB in wsgiref header values",
                            "    - debian/patches/CVE-2026-0865-2.patch: Permit HTAB in header values",
                            "      (excluding names) in Lib/wsgiref/headers.py, add test coverage.",
                            "    - CVE-2026-0865",
                            ""
                        ],
                        "package": "python3.10",
                        "version": "3.10.12-1~22.04.15",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Vyom Yadav <vyom.yadav@canonical.com>",
                        "date": "Tue, 03 Mar 2026 17:26:32 +0530"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libsmartcols1",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.4",
                    "version": "2.37.2-4ubuntu3.4"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.5",
                    "version": "2.37.2-4ubuntu3.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/ubuntu/su-pty-drop-caps.patch: harden 'su --pty' to temporarily lower",
                            "    capabilities while proxying between stdin/stdout and the pty master. This",
                            "    is to avoid su from being used to exploit kernel vulnerabilities.",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.37.2-4ubuntu3.5",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Luci Stanescu <luci.stanescu@canonical.com>",
                        "date": "Fri, 06 Mar 2026 18:10:04 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libssh-4",
                "from_version": {
                    "source_package_name": "libssh",
                    "source_package_version": "0.9.6-2ubuntu0.22.04.6",
                    "version": "0.9.6-2ubuntu0.22.04.6"
                },
                "to_version": {
                    "source_package_name": "libssh",
                    "source_package_version": "0.9.6-2ubuntu0.22.04.7",
                    "version": "0.9.6-2ubuntu0.22.04.7"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-3731",
                        "url": "https://ubuntu.com/security/CVE-2026-3731",
                        "cve_description": "A weakness has been identified in libssh up to 0.11.3. The impacted element is the function sftp_extensions_get_name/sftp_extensions_get_data of the file src/sftp.c of the component SFTP Extension Name Handler. Executing a manipulation of the argument idx can lead to out-of-bounds read. The attack may be performed from remote. Upgrading to version 0.11.4 and 0.12.0 is sufficient to resolve this issue. This patch is called 855a0853ad3abd4a6cd85ce06fce6d8d4c7a0b60. You should upgrade the affected component.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-08 11:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-3731",
                                "url": "https://ubuntu.com/security/CVE-2026-3731",
                                "cve_description": "A weakness has been identified in libssh up to 0.11.3. The impacted element is the function sftp_extensions_get_name/sftp_extensions_get_data of the file src/sftp.c of the component SFTP Extension Name Handler. Executing a manipulation of the argument idx can lead to out-of-bounds read. The attack may be performed from remote. Upgrading to version 0.11.4 and 0.12.0 is sufficient to resolve this issue. This patch is called 855a0853ad3abd4a6cd85ce06fce6d8d4c7a0b60. You should upgrade the affected component.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-08 11:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: out-of-bound read",
                            "    - debian/patches/CVE-2026-3731.patch: correct bounds checks when querying",
                            "      for an SFTP extension name or data in src/sftp.c.",
                            "    - CVE-2026-3731",
                            ""
                        ],
                        "package": "libssh",
                        "version": "0.9.6-2ubuntu0.22.04.7",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Ian Constantin <ian.constantin@canonical.com>",
                        "date": "Wed, 11 Mar 2026 12:19:27 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "libuuid1",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.4",
                    "version": "2.37.2-4ubuntu3.4"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.5",
                    "version": "2.37.2-4ubuntu3.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/ubuntu/su-pty-drop-caps.patch: harden 'su --pty' to temporarily lower",
                            "    capabilities while proxying between stdin/stdout and the pty master. This",
                            "    is to avoid su from being used to exploit kernel vulnerabilities.",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.37.2-4ubuntu3.5",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Luci Stanescu <luci.stanescu@canonical.com>",
                        "date": "Fri, 06 Mar 2026 18:10:04 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-headers-generic",
                "from_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.15.0.171.160",
                    "version": "5.15.0.171.160"
                },
                "to_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.15.0.173.161",
                    "version": "5.15.0.173.161"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.15.0-173",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "5.15.0.173.161",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Mehmet Basaran <mehmet.basaran@canonical.com>",
                        "date": "Fri, 06 Mar 2026 16:14:38 +0300"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.15.0-172",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "5.15.0.172.160",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Edoardo Canepa <edoardo.canepa@canonical.com>",
                        "date": "Sat, 07 Feb 2026 09:18:07 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-headers-virtual",
                "from_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.15.0.171.160",
                    "version": "5.15.0.171.160"
                },
                "to_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.15.0.173.161",
                    "version": "5.15.0.173.161"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.15.0-173",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "5.15.0.173.161",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Mehmet Basaran <mehmet.basaran@canonical.com>",
                        "date": "Fri, 06 Mar 2026 16:14:38 +0300"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.15.0-172",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "5.15.0.172.160",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Edoardo Canepa <edoardo.canepa@canonical.com>",
                        "date": "Sat, 07 Feb 2026 09:18:07 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-image-virtual",
                "from_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.15.0.171.160",
                    "version": "5.15.0.171.160"
                },
                "to_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.15.0.173.161",
                    "version": "5.15.0.173.161"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.15.0-173",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "5.15.0.173.161",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Mehmet Basaran <mehmet.basaran@canonical.com>",
                        "date": "Fri, 06 Mar 2026 16:14:38 +0300"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.15.0-172",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "5.15.0.172.160",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Edoardo Canepa <edoardo.canepa@canonical.com>",
                        "date": "Sat, 07 Feb 2026 09:18:07 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-virtual",
                "from_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.15.0.171.160",
                    "version": "5.15.0.171.160"
                },
                "to_version": {
                    "source_package_name": "linux-meta",
                    "source_package_version": "5.15.0.173.161",
                    "version": "5.15.0.173.161"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.15.0-173",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "5.15.0.173.161",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Mehmet Basaran <mehmet.basaran@canonical.com>",
                        "date": "Fri, 06 Mar 2026 16:14:38 +0300"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Bump ABI 5.15.0-172",
                            ""
                        ],
                        "package": "linux-meta",
                        "version": "5.15.0.172.160",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Edoardo Canepa <edoardo.canepa@canonical.com>",
                        "date": "Sat, 07 Feb 2026 09:18:07 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "mount",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.4",
                    "version": "2.37.2-4ubuntu3.4"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.5",
                    "version": "2.37.2-4ubuntu3.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/ubuntu/su-pty-drop-caps.patch: harden 'su --pty' to temporarily lower",
                            "    capabilities while proxying between stdin/stdout and the pty master. This",
                            "    is to avoid su from being used to exploit kernel vulnerabilities.",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.37.2-4ubuntu3.5",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Luci Stanescu <luci.stanescu@canonical.com>",
                        "date": "Fri, 06 Mar 2026 18:10:04 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "nftables",
                "from_version": {
                    "source_package_name": "nftables",
                    "source_package_version": "1.0.2-1ubuntu3",
                    "version": "1.0.2-1ubuntu3"
                },
                "to_version": {
                    "source_package_name": "nftables",
                    "source_package_version": "1.0.2-1ubuntu3.1",
                    "version": "1.0.2-1ubuntu3.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2142552
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * netlink: fix crash when ops doesn't support udata (LP: #2142552)",
                            ""
                        ],
                        "package": "nftables",
                        "version": "1.0.2-1ubuntu3.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2142552
                        ],
                        "author": "Dimitri John Ledkov <xnox@ubuntu.com>",
                        "date": "Tue, 24 Feb 2026 08:38:43 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "openssh-client",
                "from_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.9p1-3ubuntu0.13",
                    "version": "1:8.9p1-3ubuntu0.13"
                },
                "to_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.9p1-3ubuntu0.14",
                    "version": "1:8.9p1-3ubuntu0.14"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-3497",
                        "url": "https://ubuntu.com/security/CVE-2026-3497",
                        "cve_description": "Vulnerability in the OpenSSH GSSAPI delta included in various Linux distributions. This vulnerability affects the GSSAPI patches added by various Linux distributions and does not affect the OpenSSH upstream project itself. The usage of sshpkt_disconnect() on an error, which does not terminate the process, allows an attacker to send an unexpected GSSAPI message type during the GSSAPI key exchange to the server, which will call the underlying function and continue the execution of the program without setting the related connection variables. As the variables are not initialized to NULL the code later accesses those uninitialized variables, accessing random memory, which could lead to undefined behavior. The recommended workaround is to use ssh_packet_disconnect() instead, which does terminate the process. The impact of the vulnerability depends heavily on the compiler flag hardening configuration.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-12 19:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-61984",
                        "url": "https://ubuntu.com/security/CVE-2025-61984",
                        "cve_description": "ssh in OpenSSH before 10.1 allows control characters in usernames that originate from certain possibly untrusted sources, potentially leading to code execution when a ProxyCommand is used. The untrusted sources are the command line and %-sequence expansion of a configuration file. (A configuration file that provides a complete literal username is not categorized as an untrusted source.)",
                        "cve_priority": "low",
                        "cve_public_date": "2025-10-06 19:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-61985",
                        "url": "https://ubuntu.com/security/CVE-2025-61985",
                        "cve_description": "ssh in OpenSSH before 10.1 allows the '\\0' character in an ssh:// URI, potentially leading to code execution when a ProxyCommand is used.",
                        "cve_priority": "low",
                        "cve_public_date": "2025-10-06 19:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-3497",
                                "url": "https://ubuntu.com/security/CVE-2026-3497",
                                "cve_description": "Vulnerability in the OpenSSH GSSAPI delta included in various Linux distributions. This vulnerability affects the GSSAPI patches added by various Linux distributions and does not affect the OpenSSH upstream project itself. The usage of sshpkt_disconnect() on an error, which does not terminate the process, allows an attacker to send an unexpected GSSAPI message type during the GSSAPI key exchange to the server, which will call the underlying function and continue the execution of the program without setting the related connection variables. As the variables are not initialized to NULL the code later accesses those uninitialized variables, accessing random memory, which could lead to undefined behavior. The recommended workaround is to use ssh_packet_disconnect() instead, which does terminate the process. The impact of the vulnerability depends heavily on the compiler flag hardening configuration.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-12 19:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-61984",
                                "url": "https://ubuntu.com/security/CVE-2025-61984",
                                "cve_description": "ssh in OpenSSH before 10.1 allows control characters in usernames that originate from certain possibly untrusted sources, potentially leading to code execution when a ProxyCommand is used. The untrusted sources are the command line and %-sequence expansion of a configuration file. (A configuration file that provides a complete literal username is not categorized as an untrusted source.)",
                                "cve_priority": "low",
                                "cve_public_date": "2025-10-06 19:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-61985",
                                "url": "https://ubuntu.com/security/CVE-2025-61985",
                                "cve_description": "ssh in OpenSSH before 10.1 allows the '\\0' character in an ssh:// URI, potentially leading to code execution when a ProxyCommand is used.",
                                "cve_priority": "low",
                                "cve_public_date": "2025-10-06 19:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: GSSAPI Key Exchange issue",
                            "    - debian/patches/gssapi.patch: replace incorrect use of",
                            "      sshpkt_disconnect() with ssh_packet_disconnect() and properly",
                            "      initialize some vars.",
                            "    - CVE-2026-3497",
                            "  * SECURITY UPDATE: Untrusted control characters in usernames",
                            "    - debian/patches/CVE-2025-61984.patch: refuse usernames that include",
                            "      control characters in ssh.c.",
                            "    - CVE-2025-61984",
                            "  * SECURITY UPDATE: Code execution in ProxyCommand via NULL character",
                            "    - debian/patches/CVE-2025-61985.patch: don't allow \\0 characters in",
                            "      url-encoded strings in misc.c.",
                            "    - CVE-2025-61985",
                            ""
                        ],
                        "package": "openssh",
                        "version": "1:8.9p1-3ubuntu0.14",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Wed, 04 Mar 2026 12:55:04 -0500"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "openssh-server",
                "from_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.9p1-3ubuntu0.13",
                    "version": "1:8.9p1-3ubuntu0.13"
                },
                "to_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.9p1-3ubuntu0.14",
                    "version": "1:8.9p1-3ubuntu0.14"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-3497",
                        "url": "https://ubuntu.com/security/CVE-2026-3497",
                        "cve_description": "Vulnerability in the OpenSSH GSSAPI delta included in various Linux distributions. This vulnerability affects the GSSAPI patches added by various Linux distributions and does not affect the OpenSSH upstream project itself. The usage of sshpkt_disconnect() on an error, which does not terminate the process, allows an attacker to send an unexpected GSSAPI message type during the GSSAPI key exchange to the server, which will call the underlying function and continue the execution of the program without setting the related connection variables. As the variables are not initialized to NULL the code later accesses those uninitialized variables, accessing random memory, which could lead to undefined behavior. The recommended workaround is to use ssh_packet_disconnect() instead, which does terminate the process. The impact of the vulnerability depends heavily on the compiler flag hardening configuration.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-12 19:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-61984",
                        "url": "https://ubuntu.com/security/CVE-2025-61984",
                        "cve_description": "ssh in OpenSSH before 10.1 allows control characters in usernames that originate from certain possibly untrusted sources, potentially leading to code execution when a ProxyCommand is used. The untrusted sources are the command line and %-sequence expansion of a configuration file. (A configuration file that provides a complete literal username is not categorized as an untrusted source.)",
                        "cve_priority": "low",
                        "cve_public_date": "2025-10-06 19:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-61985",
                        "url": "https://ubuntu.com/security/CVE-2025-61985",
                        "cve_description": "ssh in OpenSSH before 10.1 allows the '\\0' character in an ssh:// URI, potentially leading to code execution when a ProxyCommand is used.",
                        "cve_priority": "low",
                        "cve_public_date": "2025-10-06 19:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-3497",
                                "url": "https://ubuntu.com/security/CVE-2026-3497",
                                "cve_description": "Vulnerability in the OpenSSH GSSAPI delta included in various Linux distributions. This vulnerability affects the GSSAPI patches added by various Linux distributions and does not affect the OpenSSH upstream project itself. The usage of sshpkt_disconnect() on an error, which does not terminate the process, allows an attacker to send an unexpected GSSAPI message type during the GSSAPI key exchange to the server, which will call the underlying function and continue the execution of the program without setting the related connection variables. As the variables are not initialized to NULL the code later accesses those uninitialized variables, accessing random memory, which could lead to undefined behavior. The recommended workaround is to use ssh_packet_disconnect() instead, which does terminate the process. The impact of the vulnerability depends heavily on the compiler flag hardening configuration.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-12 19:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-61984",
                                "url": "https://ubuntu.com/security/CVE-2025-61984",
                                "cve_description": "ssh in OpenSSH before 10.1 allows control characters in usernames that originate from certain possibly untrusted sources, potentially leading to code execution when a ProxyCommand is used. The untrusted sources are the command line and %-sequence expansion of a configuration file. (A configuration file that provides a complete literal username is not categorized as an untrusted source.)",
                                "cve_priority": "low",
                                "cve_public_date": "2025-10-06 19:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-61985",
                                "url": "https://ubuntu.com/security/CVE-2025-61985",
                                "cve_description": "ssh in OpenSSH before 10.1 allows the '\\0' character in an ssh:// URI, potentially leading to code execution when a ProxyCommand is used.",
                                "cve_priority": "low",
                                "cve_public_date": "2025-10-06 19:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: GSSAPI Key Exchange issue",
                            "    - debian/patches/gssapi.patch: replace incorrect use of",
                            "      sshpkt_disconnect() with ssh_packet_disconnect() and properly",
                            "      initialize some vars.",
                            "    - CVE-2026-3497",
                            "  * SECURITY UPDATE: Untrusted control characters in usernames",
                            "    - debian/patches/CVE-2025-61984.patch: refuse usernames that include",
                            "      control characters in ssh.c.",
                            "    - CVE-2025-61984",
                            "  * SECURITY UPDATE: Code execution in ProxyCommand via NULL character",
                            "    - debian/patches/CVE-2025-61985.patch: don't allow \\0 characters in",
                            "      url-encoded strings in misc.c.",
                            "    - CVE-2025-61985",
                            ""
                        ],
                        "package": "openssh",
                        "version": "1:8.9p1-3ubuntu0.14",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Wed, 04 Mar 2026 12:55:04 -0500"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "openssh-sftp-server",
                "from_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.9p1-3ubuntu0.13",
                    "version": "1:8.9p1-3ubuntu0.13"
                },
                "to_version": {
                    "source_package_name": "openssh",
                    "source_package_version": "1:8.9p1-3ubuntu0.14",
                    "version": "1:8.9p1-3ubuntu0.14"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-3497",
                        "url": "https://ubuntu.com/security/CVE-2026-3497",
                        "cve_description": "Vulnerability in the OpenSSH GSSAPI delta included in various Linux distributions. This vulnerability affects the GSSAPI patches added by various Linux distributions and does not affect the OpenSSH upstream project itself. The usage of sshpkt_disconnect() on an error, which does not terminate the process, allows an attacker to send an unexpected GSSAPI message type during the GSSAPI key exchange to the server, which will call the underlying function and continue the execution of the program without setting the related connection variables. As the variables are not initialized to NULL the code later accesses those uninitialized variables, accessing random memory, which could lead to undefined behavior. The recommended workaround is to use ssh_packet_disconnect() instead, which does terminate the process. The impact of the vulnerability depends heavily on the compiler flag hardening configuration.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-03-12 19:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-61984",
                        "url": "https://ubuntu.com/security/CVE-2025-61984",
                        "cve_description": "ssh in OpenSSH before 10.1 allows control characters in usernames that originate from certain possibly untrusted sources, potentially leading to code execution when a ProxyCommand is used. The untrusted sources are the command line and %-sequence expansion of a configuration file. (A configuration file that provides a complete literal username is not categorized as an untrusted source.)",
                        "cve_priority": "low",
                        "cve_public_date": "2025-10-06 19:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-61985",
                        "url": "https://ubuntu.com/security/CVE-2025-61985",
                        "cve_description": "ssh in OpenSSH before 10.1 allows the '\\0' character in an ssh:// URI, potentially leading to code execution when a ProxyCommand is used.",
                        "cve_priority": "low",
                        "cve_public_date": "2025-10-06 19:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-3497",
                                "url": "https://ubuntu.com/security/CVE-2026-3497",
                                "cve_description": "Vulnerability in the OpenSSH GSSAPI delta included in various Linux distributions. This vulnerability affects the GSSAPI patches added by various Linux distributions and does not affect the OpenSSH upstream project itself. The usage of sshpkt_disconnect() on an error, which does not terminate the process, allows an attacker to send an unexpected GSSAPI message type during the GSSAPI key exchange to the server, which will call the underlying function and continue the execution of the program without setting the related connection variables. As the variables are not initialized to NULL the code later accesses those uninitialized variables, accessing random memory, which could lead to undefined behavior. The recommended workaround is to use ssh_packet_disconnect() instead, which does terminate the process. The impact of the vulnerability depends heavily on the compiler flag hardening configuration.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-03-12 19:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-61984",
                                "url": "https://ubuntu.com/security/CVE-2025-61984",
                                "cve_description": "ssh in OpenSSH before 10.1 allows control characters in usernames that originate from certain possibly untrusted sources, potentially leading to code execution when a ProxyCommand is used. The untrusted sources are the command line and %-sequence expansion of a configuration file. (A configuration file that provides a complete literal username is not categorized as an untrusted source.)",
                                "cve_priority": "low",
                                "cve_public_date": "2025-10-06 19:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-61985",
                                "url": "https://ubuntu.com/security/CVE-2025-61985",
                                "cve_description": "ssh in OpenSSH before 10.1 allows the '\\0' character in an ssh:// URI, potentially leading to code execution when a ProxyCommand is used.",
                                "cve_priority": "low",
                                "cve_public_date": "2025-10-06 19:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: GSSAPI Key Exchange issue",
                            "    - debian/patches/gssapi.patch: replace incorrect use of",
                            "      sshpkt_disconnect() with ssh_packet_disconnect() and properly",
                            "      initialize some vars.",
                            "    - CVE-2026-3497",
                            "  * SECURITY UPDATE: Untrusted control characters in usernames",
                            "    - debian/patches/CVE-2025-61984.patch: refuse usernames that include",
                            "      control characters in ssh.c.",
                            "    - CVE-2025-61984",
                            "  * SECURITY UPDATE: Code execution in ProxyCommand via NULL character",
                            "    - debian/patches/CVE-2025-61985.patch: don't allow \\0 characters in",
                            "      url-encoded strings in misc.c.",
                            "    - CVE-2025-61985",
                            ""
                        ],
                        "package": "openssh",
                        "version": "1:8.9p1-3ubuntu0.14",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Wed, 04 Mar 2026 12:55:04 -0500"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3-cryptography",
                "from_version": {
                    "source_package_name": "python-cryptography",
                    "source_package_version": "3.4.8-1ubuntu2.2",
                    "version": "3.4.8-1ubuntu2.2"
                },
                "to_version": {
                    "source_package_name": "python-cryptography",
                    "source_package_version": "3.4.8-1ubuntu2.4",
                    "version": "3.4.8-1ubuntu2.4"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-26007",
                        "url": "https://ubuntu.com/security/CVE-2026-26007",
                        "cve_description": "cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to 46.0.5, the public_key_from_numbers (or EllipticCurvePublicNumbers.public_key()), EllipticCurvePublicNumbers.public_key(), load_der_public_key() and load_pem_public_key() functions do not verify that the point belongs to the expected prime-order subgroup of the curve. This missing validation allows an attacker to provide a public key point P from a small-order subgroup. This can lead to security issues in various situations, such as the most commonly used signature verification (ECDSA) and shared key negotiation (ECDH). When the victim computes the shared secret as S = [victim_private_key]P via ECDH, this leaks information about victim_private_key mod (small_subgroup_order). For curves with cofactor > 1, this reveals the least significant bits of the private key. When these weak public keys are used in ECDSA , it's easy to forge signatures on the small subgroup. Only SECT curves are impacted by this. This vulnerability is fixed in 46.0.5.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-10 22:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-26007",
                        "url": "https://ubuntu.com/security/CVE-2026-26007",
                        "cve_description": "cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to 46.0.5, the public_key_from_numbers (or EllipticCurvePublicNumbers.public_key()), EllipticCurvePublicNumbers.public_key(), load_der_public_key() and load_pem_public_key() functions do not verify that the point belongs to the expected prime-order subgroup of the curve. This missing validation allows an attacker to provide a public key point P from a small-order subgroup. This can lead to security issues in various situations, such as the most commonly used signature verification (ECDSA) and shared key negotiation (ECDH). When the victim computes the shared secret as S = [victim_private_key]P via ECDH, this leaks information about victim_private_key mod (small_subgroup_order). For curves with cofactor > 1, this reveals the least significant bits of the private key. When these weak public keys are used in ECDSA , it's easy to forge signatures on the small subgroup. Only SECT curves are impacted by this. This vulnerability is fixed in 46.0.5.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-10 22:17:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2144373
                ],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-26007",
                                "url": "https://ubuntu.com/security/CVE-2026-26007",
                                "cve_description": "cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to 46.0.5, the public_key_from_numbers (or EllipticCurvePublicNumbers.public_key()), EllipticCurvePublicNumbers.public_key(), load_der_public_key() and load_pem_public_key() functions do not verify that the point belongs to the expected prime-order subgroup of the curve. This missing validation allows an attacker to provide a public key point P from a small-order subgroup. This can lead to security issues in various situations, such as the most commonly used signature verification (ECDSA) and shared key negotiation (ECDH). When the victim computes the shared secret as S = [victim_private_key]P via ECDH, this leaks information about victim_private_key mod (small_subgroup_order). For curves with cofactor > 1, this reveals the least significant bits of the private key. When these weak public keys are used in ECDSA , it's easy to forge signatures on the small subgroup. Only SECT curves are impacted by this. This vulnerability is fixed in 46.0.5.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-10 22:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY REGRESSION: ecc support regression (LP: #2144373)",
                            "    - debian/patches/CVE-2026-26007.patch: updated to remove problematic",
                            "      deprecation warning code which is causing a regression with ansible.",
                            ""
                        ],
                        "package": "python-cryptography",
                        "version": "3.4.8-1ubuntu2.4",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [
                            2144373
                        ],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Sat, 14 Mar 2026 08:22:06 -0400"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-26007",
                                "url": "https://ubuntu.com/security/CVE-2026-26007",
                                "cve_description": "cryptography is a package designed to expose cryptographic primitives and recipes to Python developers. Prior to 46.0.5, the public_key_from_numbers (or EllipticCurvePublicNumbers.public_key()), EllipticCurvePublicNumbers.public_key(), load_der_public_key() and load_pem_public_key() functions do not verify that the point belongs to the expected prime-order subgroup of the curve. This missing validation allows an attacker to provide a public key point P from a small-order subgroup. This can lead to security issues in various situations, such as the most commonly used signature verification (ECDSA) and shared key negotiation (ECDH). When the victim computes the shared secret as S = [victim_private_key]P via ECDH, this leaks information about victim_private_key mod (small_subgroup_order). For curves with cofactor > 1, this reveals the least significant bits of the private key. When these weak public keys are used in ECDSA , it's easy to forge signatures on the small subgroup. Only SECT curves are impacted by this. This vulnerability is fixed in 46.0.5.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-10 22:17:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Subgroup Attack Due to Missing Subgroup Validation for",
                            "    SECT Curves",
                            "    - debian/patches/CVE-2026-26007-pre1.patch: check if public keys are at",
                            "      infinity earlier in src/cryptography/hazmat/backends/openssl/ec.py,",
                            "      tests/hazmat/primitives/test_ec.py.",
                            "    - debian/patches/CVE-2026-26007.patch: EC check key on cofactor > 1 in",
                            "      src/cryptography/hazmat/primitives/asymmetric/ec.py,",
                            "      src/cryptography/utils.py, tests/hazmat/primitives/test_ec.py,",
                            "      src/_cffi_src/openssl/ec.py,",
                            "      src/cryptography/hazmat/backends/openssl/ec.py.",
                            "    - CVE-2026-26007",
                            ""
                        ],
                        "package": "python-cryptography",
                        "version": "3.4.8-1ubuntu2.3",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Fri, 20 Feb 2026 10:14:37 -0500"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3.10",
                "from_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.14",
                    "version": "3.10.12-1~22.04.14"
                },
                "to_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.15",
                    "version": "3.10.12-1~22.04.15"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-15366",
                        "url": "https://ubuntu.com/security/CVE-2025-15366",
                        "cve_description": "The imaplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-15367",
                        "url": "https://ubuntu.com/security/CVE-2025-15367",
                        "cve_description": "The poplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-0865",
                        "url": "https://ubuntu.com/security/CVE-2026-0865",
                        "cve_description": "User-controlled header names and values containing newlines can allow injecting HTTP headers.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-15366",
                                "url": "https://ubuntu.com/security/CVE-2025-15366",
                                "cve_description": "The imaplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-15367",
                                "url": "https://ubuntu.com/security/CVE-2025-15367",
                                "cve_description": "The poplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-0865",
                                "url": "https://ubuntu.com/security/CVE-2026-0865",
                                "cve_description": "User-controlled header names and values containing newlines can allow injecting HTTP headers.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY REGRESSION: Revert patch for CVE-2025-15366",
                            "    - debian/patches/CVE-2025-15366.patch: Reverted. Patch breaks RFC",
                            "      9051 IMAP conformance and introduces behavior regressions avoided",
                            "      by upstream.",
                            "    - CVE-2025-15366",
                            "  * SECURITY REGRESSION: Revert patch for CVE-2025-15367",
                            "    - debian/patches/CVE-2025-15367.patch: Reverted to prevent behavior",
                            "      regressions, aligning with upstream backporting decisions.",
                            "    - CVE-2025-15367",
                            "  * SECURITY REGRESSION: Allow HTAB in wsgiref header values",
                            "    - debian/patches/CVE-2026-0865-2.patch: Permit HTAB in header values",
                            "      (excluding names) in Lib/wsgiref/headers.py, add test coverage.",
                            "    - CVE-2026-0865",
                            ""
                        ],
                        "package": "python3.10",
                        "version": "3.10.12-1~22.04.15",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Vyom Yadav <vyom.yadav@canonical.com>",
                        "date": "Tue, 03 Mar 2026 17:26:32 +0530"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "python3.10-minimal",
                "from_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.14",
                    "version": "3.10.12-1~22.04.14"
                },
                "to_version": {
                    "source_package_name": "python3.10",
                    "source_package_version": "3.10.12-1~22.04.15",
                    "version": "3.10.12-1~22.04.15"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-15366",
                        "url": "https://ubuntu.com/security/CVE-2025-15366",
                        "cve_description": "The imaplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-15367",
                        "url": "https://ubuntu.com/security/CVE-2025-15367",
                        "cve_description": "The poplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-0865",
                        "url": "https://ubuntu.com/security/CVE-2026-0865",
                        "cve_description": "User-controlled header names and values containing newlines can allow injecting HTTP headers.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-20 22:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-15366",
                                "url": "https://ubuntu.com/security/CVE-2025-15366",
                                "cve_description": "The imaplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-15367",
                                "url": "https://ubuntu.com/security/CVE-2025-15367",
                                "cve_description": "The poplib module, when passed a user-controlled command, can have additional commands injected using newlines. Mitigation rejects commands containing control characters.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-0865",
                                "url": "https://ubuntu.com/security/CVE-2026-0865",
                                "cve_description": "User-controlled header names and values containing newlines can allow injecting HTTP headers.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-20 22:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY REGRESSION: Revert patch for CVE-2025-15366",
                            "    - debian/patches/CVE-2025-15366.patch: Reverted. Patch breaks RFC",
                            "      9051 IMAP conformance and introduces behavior regressions avoided",
                            "      by upstream.",
                            "    - CVE-2025-15366",
                            "  * SECURITY REGRESSION: Revert patch for CVE-2025-15367",
                            "    - debian/patches/CVE-2025-15367.patch: Reverted to prevent behavior",
                            "      regressions, aligning with upstream backporting decisions.",
                            "    - CVE-2025-15367",
                            "  * SECURITY REGRESSION: Allow HTAB in wsgiref header values",
                            "    - debian/patches/CVE-2026-0865-2.patch: Permit HTAB in header values",
                            "      (excluding names) in Lib/wsgiref/headers.py, add test coverage.",
                            "    - CVE-2026-0865",
                            ""
                        ],
                        "package": "python3.10",
                        "version": "3.10.12-1~22.04.15",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Vyom Yadav <vyom.yadav@canonical.com>",
                        "date": "Tue, 03 Mar 2026 17:26:32 +0530"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "snapd",
                "from_version": {
                    "source_package_name": "snapd",
                    "source_package_version": "2.73+ubuntu22.04",
                    "version": "2.73+ubuntu22.04"
                },
                "to_version": {
                    "source_package_name": "snapd",
                    "source_package_version": "2.73+ubuntu22.04.1",
                    "version": "2.73+ubuntu22.04.1"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-3888",
                        "url": "https://ubuntu.com/security/CVE-2026-3888",
                        "cve_description": "Local privilege escalation in snapd in Ubuntu on Linux allows local attackers to get root privilege by re-creating snap's private /tmp directory when systemd-tmpfiles is enabled to automatically clean up this directory.",
                        "cve_priority": "high",
                        "cve_public_date": "2026-03-17 14:00:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-3888",
                                "url": "https://ubuntu.com/security/CVE-2026-3888",
                                "cve_description": "Local privilege escalation in snapd in Ubuntu on Linux allows local attackers to get root privilege by re-creating snap's private /tmp directory when systemd-tmpfiles is enabled to automatically clean up this directory.",
                                "cve_priority": "high",
                                "cve_public_date": "2026-03-17 14:00:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Local privilege escalation",
                            "    - debian/patches/CVE-2026-3888.patch: more precise prune pattern for",
                            "      tmpfiles.",
                            "    - CVE-2026-3888",
                            ""
                        ],
                        "package": "snapd",
                        "version": "2.73+ubuntu22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Eduardo Barretto <eduardo.barretto@canonical.com>",
                        "date": "Thu, 12 Mar 2026 12:30:27 +0100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "sosreport",
                "from_version": {
                    "source_package_name": "sosreport",
                    "source_package_version": "4.9.2-0ubuntu0~22.04.1",
                    "version": "4.9.2-0ubuntu0~22.04.1"
                },
                "to_version": {
                    "source_package_name": "sosreport",
                    "source_package_version": "4.10.2-0ubuntu0~22.04.1",
                    "version": "4.10.2-0ubuntu0~22.04.1"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2136302
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * New 4.10.2 upstream release. (LP: #2136302)",
                            "",
                            "  * For more details, full release note is available here:",
                            "    - https://github.com/sosreport/sos/releases/tag/4.10.2",
                            "",
                            "  * d/control: Add gpg to Recommends so that we are able to encrypt and",
                            "    decrypt sos reports",
                            "",
                            "  * d/copyright: Aligned copyright with upstream Debian",
                            "",
                            "  * Former patch, now fixed:",
                            "    - d/p/0002-component-Grab-tmpdir-from-policy.patch",
                            "",
                            "  * Remaining patches:",
                            "    - d/p/0001-debian-change-tmp-dir-location.patch",
                            ""
                        ],
                        "package": "sosreport",
                        "version": "4.10.2-0ubuntu0~22.04.1",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2136302
                        ],
                        "author": "Dan Emmons <dan.emmons@canonical.com>",
                        "date": "Fri, 19 Dec 2025 17:58:00 +0000"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "sudo",
                "from_version": {
                    "source_package_name": "sudo",
                    "source_package_version": "1.9.9-1ubuntu2.5",
                    "version": "1.9.9-1ubuntu2.5"
                },
                "to_version": {
                    "source_package_name": "sudo",
                    "source_package_version": "1.9.9-1ubuntu2.6",
                    "version": "1.9.9-1ubuntu2.6"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    2143042
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: exec_mailer gid issue (LP: #2143042)",
                            "    - debian/patches/lp2143042.patch: set group as well as uid when running",
                            "      the mailer and make a setuid(), setgid() or setgroups() failure fatal",
                            "      in include/sudo_eventlog.h, lib/eventlog/eventlog.c,",
                            "      lib/eventlog/eventlog_conf.c, plugins/sudoers/logging.c,",
                            "      plugins/sudoers/policy.c.",
                            "    - No CVE number",
                            ""
                        ],
                        "package": "sudo",
                        "version": "1.9.9-1ubuntu2.6",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [
                            2143042
                        ],
                        "author": "Marc Deslauriers <marc.deslauriers@ubuntu.com>",
                        "date": "Mon, 02 Mar 2026 08:08:06 -0500"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "util-linux",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.4",
                    "version": "2.37.2-4ubuntu3.4"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.5",
                    "version": "2.37.2-4ubuntu3.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/ubuntu/su-pty-drop-caps.patch: harden 'su --pty' to temporarily lower",
                            "    capabilities while proxying between stdin/stdout and the pty master. This",
                            "    is to avoid su from being used to exploit kernel vulnerabilities.",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.37.2-4ubuntu3.5",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Luci Stanescu <luci.stanescu@canonical.com>",
                        "date": "Fri, 06 Mar 2026 18:10:04 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "uuid-runtime",
                "from_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.4",
                    "version": "2.37.2-4ubuntu3.4"
                },
                "to_version": {
                    "source_package_name": "util-linux",
                    "source_package_version": "2.37.2-4ubuntu3.5",
                    "version": "2.37.2-4ubuntu3.5"
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * d/p/ubuntu/su-pty-drop-caps.patch: harden 'su --pty' to temporarily lower",
                            "    capabilities while proxying between stdin/stdout and the pty master. This",
                            "    is to avoid su from being used to exploit kernel vulnerabilities.",
                            ""
                        ],
                        "package": "util-linux",
                        "version": "2.37.2-4ubuntu3.5",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Luci Stanescu <luci.stanescu@canonical.com>",
                        "date": "Fri, 06 Mar 2026 18:10:04 +0200"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "vim",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.24",
                    "version": "2:8.2.3995-1ubuntu2.24"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.26",
                    "version": "2:8.2.3995-1ubuntu2.26"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-26269",
                        "url": "https://ubuntu.com/security/CVE-2026-26269",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.1.2148, a stack buffer overflow vulnerability exists in Vim's NetBeans integration when processing the specialKeys command, affecting Vim builds that enable and use the NetBeans feature. The Stack buffer overflow exists in special_keys() (in src/netbeans.c). The while (*tok) loop writes two bytes per iteration into a 64-byte stack buffer (keybuf) with no bounds check. A malicious NetBeans server can overflow keybuf with a single specialKeys command. The issue has been fixed as of Vim patch v9.1.2148.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-02-13 20:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28420",
                        "url": "https://ubuntu.com/security/CVE-2026-28420",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0076, a heap-based buffer overflow WRITE and an out-of-bounds READ exist in Vim's terminal emulator when processing maximum combining characters from Unicode supplementary planes. Version 9.2.0076 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28422",
                        "url": "https://ubuntu.com/security/CVE-2026-28422",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0078, a stack-buffer-overflow occurs in `build_stl_str_hl()` when rendering a statusline with a multi-byte fill character on a very wide terminal. Version 9.2.0078 patches the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-25749",
                        "url": "https://ubuntu.com/security/CVE-2026-25749",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.1.2132, a heap buffer overflow vulnerability exists in Vim's tag file resolution logic when processing the 'helpfile' option. The vulnerability is located in the get_tagfname() function in src/tag.c. When processing help file tags, Vim copies the user-controlled 'helpfile' option value into a fixed-size heap buffer of MAXPATHL + 1 bytes (typically 4097 bytes) using an unsafe STRCPY() operation without any bounds checking. This issue has been patched in version 9.1.2132.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-02-06 23:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28417",
                        "url": "https://ubuntu.com/security/CVE-2026-28417",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0073, an OS command injection vulnerability exists in the `netrw` standard plugin bundled with Vim. By inducing a user to open a crafted URL (e.g., using the `scp://` protocol handler), an attacker can execute arbitrary shell commands with the privileges of the Vim process. Version 9.2.0073 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28418",
                        "url": "https://ubuntu.com/security/CVE-2026-28418",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0074, a heap-based buffer overflow out-of-bounds read exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file, Vim can be tricked into reading up to 7 bytes beyond the allocated memory boundary. Version 9.2.0074 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28419",
                        "url": "https://ubuntu.com/security/CVE-2026-28419",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0075, a heap-based buffer underflow exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file where a delimiter appears at the start of a line, Vim attempts to read memory immediately preceding the allocated buffer. Version 9.2.0075 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28421",
                        "url": "https://ubuntu.com/security/CVE-2026-28421",
                        "cve_description": "Vim is an open source, command line text editor. Versions prior to 9.2.0077 have a heap-buffer-overflow and a segmentation fault (SEGV) exist in Vim's swap file recovery logic. Both are caused by unvalidated fields read from crafted pointer blocks within a swap file. Version 9.2.0077 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-26269",
                                "url": "https://ubuntu.com/security/CVE-2026-26269",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.1.2148, a stack buffer overflow vulnerability exists in Vim's NetBeans integration when processing the specialKeys command, affecting Vim builds that enable and use the NetBeans feature. The Stack buffer overflow exists in special_keys() (in src/netbeans.c). The while (*tok) loop writes two bytes per iteration into a 64-byte stack buffer (keybuf) with no bounds check. A malicious NetBeans server can overflow keybuf with a single specialKeys command. The issue has been fixed as of Vim patch v9.1.2148.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-02-13 20:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28420",
                                "url": "https://ubuntu.com/security/CVE-2026-28420",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0076, a heap-based buffer overflow WRITE and an out-of-bounds READ exist in Vim's terminal emulator when processing maximum combining characters from Unicode supplementary planes. Version 9.2.0076 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28422",
                                "url": "https://ubuntu.com/security/CVE-2026-28422",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0078, a stack-buffer-overflow occurs in `build_stl_str_hl()` when rendering a statusline with a multi-byte fill character on a very wide terminal. Version 9.2.0078 patches the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-25749",
                                "url": "https://ubuntu.com/security/CVE-2026-25749",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.1.2132, a heap buffer overflow vulnerability exists in Vim's tag file resolution logic when processing the 'helpfile' option. The vulnerability is located in the get_tagfname() function in src/tag.c. When processing help file tags, Vim copies the user-controlled 'helpfile' option value into a fixed-size heap buffer of MAXPATHL + 1 bytes (typically 4097 bytes) using an unsafe STRCPY() operation without any bounds checking. This issue has been patched in version 9.1.2132.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-02-06 23:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28417",
                                "url": "https://ubuntu.com/security/CVE-2026-28417",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0073, an OS command injection vulnerability exists in the `netrw` standard plugin bundled with Vim. By inducing a user to open a crafted URL (e.g., using the `scp://` protocol handler), an attacker can execute arbitrary shell commands with the privileges of the Vim process. Version 9.2.0073 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28418",
                                "url": "https://ubuntu.com/security/CVE-2026-28418",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0074, a heap-based buffer overflow out-of-bounds read exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file, Vim can be tricked into reading up to 7 bytes beyond the allocated memory boundary. Version 9.2.0074 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28419",
                                "url": "https://ubuntu.com/security/CVE-2026-28419",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0075, a heap-based buffer underflow exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file where a delimiter appears at the start of a line, Vim attempts to read memory immediately preceding the allocated buffer. Version 9.2.0075 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28421",
                                "url": "https://ubuntu.com/security/CVE-2026-28421",
                                "cve_description": "Vim is an open source, command line text editor. Versions prior to 9.2.0077 have a heap-buffer-overflow and a segmentation fault (SEGV) exist in Vim's swap file recovery logic. Both are caused by unvalidated fields read from crafted pointer blocks within a swap file. Version 9.2.0077 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Buffer Overflow",
                            "    - debian/patches/CVE-2026-26269.patch: Limit writing to max KEYBUFLEN",
                            "      bytes to prevent writing out of bounds.",
                            "    - debian/patches/CVE-2026-28420.patch: Use VTERM_MAX_CHARS_PER_CELL * 4",
                            "      for ga_grow() to ensure sufficient space. Add a boundary check to the",
                            "      character loop to prevent index out-of-bounds access.",
                            "    - debian/patches/CVE-2026-28422.patch: Update the size check to account",
                            "      for the byte length of the fill character (using MB_CHAR2LEN).",
                            "    - debian/patches/CVE-2026-25749.patch: Limit strncpy to the length",
                            "      of the buffer (MAXPATHL)",
                            "    - CVE-2026-26269",
                            "    - CVE-2026-28420",
                            "    - CVE-2026-28422",
                            "    - CVE-2026-25749",
                            "  * SECURITY UPDATE: Command Injection",
                            "    - debian/patches/CVE-2026-28417.patch: Implement stricter RFC1123",
                            "      hostname and IP validation. Use shellescape() for the provided",
                            "      hostname and port.",
                            "    - CVE-2026-28417",
                            "  * SECURITY UPDATE: Out of Bounds Read",
                            "    - debian/patches/CVE-2026-28418.patch: Check for end of buffer",
                            "      and return early.",
                            "    - CVE-2026-28418",
                            "  * SECURITY UPDATE: Buffer Underflow",
                            "    - debian/patches/CVE-2026-28419.patch: Add a check to ensure the",
                            "      delimiter (p_7f) is not at the start of the buffer (lbuf) before",
                            "      attempting to isolate the tag name.",
                            "    - CVE-2026-28419",
                            "  * SECURITY UPDATE: Denial of Service",
                            "    - debian/patches/CVE-2026-28421.patch: Add bounds checks on",
                            "      pe_page_count and pe_bnum against mf_blocknr_max before descending",
                            "      into the block tree, and validate pe_old_lnum >= 1 and",
                            "      pe_line_count > 0 before calling readfile().",
                            "    - CVE-2026-28421",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.26",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Bruce Cable <bruce.cable@canonical.com>",
                        "date": "Wed, 11 Mar 2026 10:44:44 +1100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "vim-common",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.24",
                    "version": "2:8.2.3995-1ubuntu2.24"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.26",
                    "version": "2:8.2.3995-1ubuntu2.26"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-26269",
                        "url": "https://ubuntu.com/security/CVE-2026-26269",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.1.2148, a stack buffer overflow vulnerability exists in Vim's NetBeans integration when processing the specialKeys command, affecting Vim builds that enable and use the NetBeans feature. The Stack buffer overflow exists in special_keys() (in src/netbeans.c). The while (*tok) loop writes two bytes per iteration into a 64-byte stack buffer (keybuf) with no bounds check. A malicious NetBeans server can overflow keybuf with a single specialKeys command. The issue has been fixed as of Vim patch v9.1.2148.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-02-13 20:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28420",
                        "url": "https://ubuntu.com/security/CVE-2026-28420",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0076, a heap-based buffer overflow WRITE and an out-of-bounds READ exist in Vim's terminal emulator when processing maximum combining characters from Unicode supplementary planes. Version 9.2.0076 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28422",
                        "url": "https://ubuntu.com/security/CVE-2026-28422",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0078, a stack-buffer-overflow occurs in `build_stl_str_hl()` when rendering a statusline with a multi-byte fill character on a very wide terminal. Version 9.2.0078 patches the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-25749",
                        "url": "https://ubuntu.com/security/CVE-2026-25749",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.1.2132, a heap buffer overflow vulnerability exists in Vim's tag file resolution logic when processing the 'helpfile' option. The vulnerability is located in the get_tagfname() function in src/tag.c. When processing help file tags, Vim copies the user-controlled 'helpfile' option value into a fixed-size heap buffer of MAXPATHL + 1 bytes (typically 4097 bytes) using an unsafe STRCPY() operation without any bounds checking. This issue has been patched in version 9.1.2132.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-02-06 23:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28417",
                        "url": "https://ubuntu.com/security/CVE-2026-28417",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0073, an OS command injection vulnerability exists in the `netrw` standard plugin bundled with Vim. By inducing a user to open a crafted URL (e.g., using the `scp://` protocol handler), an attacker can execute arbitrary shell commands with the privileges of the Vim process. Version 9.2.0073 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28418",
                        "url": "https://ubuntu.com/security/CVE-2026-28418",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0074, a heap-based buffer overflow out-of-bounds read exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file, Vim can be tricked into reading up to 7 bytes beyond the allocated memory boundary. Version 9.2.0074 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28419",
                        "url": "https://ubuntu.com/security/CVE-2026-28419",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0075, a heap-based buffer underflow exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file where a delimiter appears at the start of a line, Vim attempts to read memory immediately preceding the allocated buffer. Version 9.2.0075 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28421",
                        "url": "https://ubuntu.com/security/CVE-2026-28421",
                        "cve_description": "Vim is an open source, command line text editor. Versions prior to 9.2.0077 have a heap-buffer-overflow and a segmentation fault (SEGV) exist in Vim's swap file recovery logic. Both are caused by unvalidated fields read from crafted pointer blocks within a swap file. Version 9.2.0077 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-26269",
                                "url": "https://ubuntu.com/security/CVE-2026-26269",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.1.2148, a stack buffer overflow vulnerability exists in Vim's NetBeans integration when processing the specialKeys command, affecting Vim builds that enable and use the NetBeans feature. The Stack buffer overflow exists in special_keys() (in src/netbeans.c). The while (*tok) loop writes two bytes per iteration into a 64-byte stack buffer (keybuf) with no bounds check. A malicious NetBeans server can overflow keybuf with a single specialKeys command. The issue has been fixed as of Vim patch v9.1.2148.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-02-13 20:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28420",
                                "url": "https://ubuntu.com/security/CVE-2026-28420",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0076, a heap-based buffer overflow WRITE and an out-of-bounds READ exist in Vim's terminal emulator when processing maximum combining characters from Unicode supplementary planes. Version 9.2.0076 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28422",
                                "url": "https://ubuntu.com/security/CVE-2026-28422",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0078, a stack-buffer-overflow occurs in `build_stl_str_hl()` when rendering a statusline with a multi-byte fill character on a very wide terminal. Version 9.2.0078 patches the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-25749",
                                "url": "https://ubuntu.com/security/CVE-2026-25749",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.1.2132, a heap buffer overflow vulnerability exists in Vim's tag file resolution logic when processing the 'helpfile' option. The vulnerability is located in the get_tagfname() function in src/tag.c. When processing help file tags, Vim copies the user-controlled 'helpfile' option value into a fixed-size heap buffer of MAXPATHL + 1 bytes (typically 4097 bytes) using an unsafe STRCPY() operation without any bounds checking. This issue has been patched in version 9.1.2132.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-02-06 23:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28417",
                                "url": "https://ubuntu.com/security/CVE-2026-28417",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0073, an OS command injection vulnerability exists in the `netrw` standard plugin bundled with Vim. By inducing a user to open a crafted URL (e.g., using the `scp://` protocol handler), an attacker can execute arbitrary shell commands with the privileges of the Vim process. Version 9.2.0073 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28418",
                                "url": "https://ubuntu.com/security/CVE-2026-28418",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0074, a heap-based buffer overflow out-of-bounds read exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file, Vim can be tricked into reading up to 7 bytes beyond the allocated memory boundary. Version 9.2.0074 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28419",
                                "url": "https://ubuntu.com/security/CVE-2026-28419",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0075, a heap-based buffer underflow exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file where a delimiter appears at the start of a line, Vim attempts to read memory immediately preceding the allocated buffer. Version 9.2.0075 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28421",
                                "url": "https://ubuntu.com/security/CVE-2026-28421",
                                "cve_description": "Vim is an open source, command line text editor. Versions prior to 9.2.0077 have a heap-buffer-overflow and a segmentation fault (SEGV) exist in Vim's swap file recovery logic. Both are caused by unvalidated fields read from crafted pointer blocks within a swap file. Version 9.2.0077 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Buffer Overflow",
                            "    - debian/patches/CVE-2026-26269.patch: Limit writing to max KEYBUFLEN",
                            "      bytes to prevent writing out of bounds.",
                            "    - debian/patches/CVE-2026-28420.patch: Use VTERM_MAX_CHARS_PER_CELL * 4",
                            "      for ga_grow() to ensure sufficient space. Add a boundary check to the",
                            "      character loop to prevent index out-of-bounds access.",
                            "    - debian/patches/CVE-2026-28422.patch: Update the size check to account",
                            "      for the byte length of the fill character (using MB_CHAR2LEN).",
                            "    - debian/patches/CVE-2026-25749.patch: Limit strncpy to the length",
                            "      of the buffer (MAXPATHL)",
                            "    - CVE-2026-26269",
                            "    - CVE-2026-28420",
                            "    - CVE-2026-28422",
                            "    - CVE-2026-25749",
                            "  * SECURITY UPDATE: Command Injection",
                            "    - debian/patches/CVE-2026-28417.patch: Implement stricter RFC1123",
                            "      hostname and IP validation. Use shellescape() for the provided",
                            "      hostname and port.",
                            "    - CVE-2026-28417",
                            "  * SECURITY UPDATE: Out of Bounds Read",
                            "    - debian/patches/CVE-2026-28418.patch: Check for end of buffer",
                            "      and return early.",
                            "    - CVE-2026-28418",
                            "  * SECURITY UPDATE: Buffer Underflow",
                            "    - debian/patches/CVE-2026-28419.patch: Add a check to ensure the",
                            "      delimiter (p_7f) is not at the start of the buffer (lbuf) before",
                            "      attempting to isolate the tag name.",
                            "    - CVE-2026-28419",
                            "  * SECURITY UPDATE: Denial of Service",
                            "    - debian/patches/CVE-2026-28421.patch: Add bounds checks on",
                            "      pe_page_count and pe_bnum against mf_blocknr_max before descending",
                            "      into the block tree, and validate pe_old_lnum >= 1 and",
                            "      pe_line_count > 0 before calling readfile().",
                            "    - CVE-2026-28421",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.26",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Bruce Cable <bruce.cable@canonical.com>",
                        "date": "Wed, 11 Mar 2026 10:44:44 +1100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "vim-runtime",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.24",
                    "version": "2:8.2.3995-1ubuntu2.24"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.26",
                    "version": "2:8.2.3995-1ubuntu2.26"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-26269",
                        "url": "https://ubuntu.com/security/CVE-2026-26269",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.1.2148, a stack buffer overflow vulnerability exists in Vim's NetBeans integration when processing the specialKeys command, affecting Vim builds that enable and use the NetBeans feature. The Stack buffer overflow exists in special_keys() (in src/netbeans.c). The while (*tok) loop writes two bytes per iteration into a 64-byte stack buffer (keybuf) with no bounds check. A malicious NetBeans server can overflow keybuf with a single specialKeys command. The issue has been fixed as of Vim patch v9.1.2148.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-02-13 20:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28420",
                        "url": "https://ubuntu.com/security/CVE-2026-28420",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0076, a heap-based buffer overflow WRITE and an out-of-bounds READ exist in Vim's terminal emulator when processing maximum combining characters from Unicode supplementary planes. Version 9.2.0076 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28422",
                        "url": "https://ubuntu.com/security/CVE-2026-28422",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0078, a stack-buffer-overflow occurs in `build_stl_str_hl()` when rendering a statusline with a multi-byte fill character on a very wide terminal. Version 9.2.0078 patches the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-25749",
                        "url": "https://ubuntu.com/security/CVE-2026-25749",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.1.2132, a heap buffer overflow vulnerability exists in Vim's tag file resolution logic when processing the 'helpfile' option. The vulnerability is located in the get_tagfname() function in src/tag.c. When processing help file tags, Vim copies the user-controlled 'helpfile' option value into a fixed-size heap buffer of MAXPATHL + 1 bytes (typically 4097 bytes) using an unsafe STRCPY() operation without any bounds checking. This issue has been patched in version 9.1.2132.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-02-06 23:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28417",
                        "url": "https://ubuntu.com/security/CVE-2026-28417",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0073, an OS command injection vulnerability exists in the `netrw` standard plugin bundled with Vim. By inducing a user to open a crafted URL (e.g., using the `scp://` protocol handler), an attacker can execute arbitrary shell commands with the privileges of the Vim process. Version 9.2.0073 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28418",
                        "url": "https://ubuntu.com/security/CVE-2026-28418",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0074, a heap-based buffer overflow out-of-bounds read exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file, Vim can be tricked into reading up to 7 bytes beyond the allocated memory boundary. Version 9.2.0074 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28419",
                        "url": "https://ubuntu.com/security/CVE-2026-28419",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0075, a heap-based buffer underflow exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file where a delimiter appears at the start of a line, Vim attempts to read memory immediately preceding the allocated buffer. Version 9.2.0075 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28421",
                        "url": "https://ubuntu.com/security/CVE-2026-28421",
                        "cve_description": "Vim is an open source, command line text editor. Versions prior to 9.2.0077 have a heap-buffer-overflow and a segmentation fault (SEGV) exist in Vim's swap file recovery logic. Both are caused by unvalidated fields read from crafted pointer blocks within a swap file. Version 9.2.0077 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-26269",
                                "url": "https://ubuntu.com/security/CVE-2026-26269",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.1.2148, a stack buffer overflow vulnerability exists in Vim's NetBeans integration when processing the specialKeys command, affecting Vim builds that enable and use the NetBeans feature. The Stack buffer overflow exists in special_keys() (in src/netbeans.c). The while (*tok) loop writes two bytes per iteration into a 64-byte stack buffer (keybuf) with no bounds check. A malicious NetBeans server can overflow keybuf with a single specialKeys command. The issue has been fixed as of Vim patch v9.1.2148.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-02-13 20:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28420",
                                "url": "https://ubuntu.com/security/CVE-2026-28420",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0076, a heap-based buffer overflow WRITE and an out-of-bounds READ exist in Vim's terminal emulator when processing maximum combining characters from Unicode supplementary planes. Version 9.2.0076 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28422",
                                "url": "https://ubuntu.com/security/CVE-2026-28422",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0078, a stack-buffer-overflow occurs in `build_stl_str_hl()` when rendering a statusline with a multi-byte fill character on a very wide terminal. Version 9.2.0078 patches the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-25749",
                                "url": "https://ubuntu.com/security/CVE-2026-25749",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.1.2132, a heap buffer overflow vulnerability exists in Vim's tag file resolution logic when processing the 'helpfile' option. The vulnerability is located in the get_tagfname() function in src/tag.c. When processing help file tags, Vim copies the user-controlled 'helpfile' option value into a fixed-size heap buffer of MAXPATHL + 1 bytes (typically 4097 bytes) using an unsafe STRCPY() operation without any bounds checking. This issue has been patched in version 9.1.2132.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-02-06 23:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28417",
                                "url": "https://ubuntu.com/security/CVE-2026-28417",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0073, an OS command injection vulnerability exists in the `netrw` standard plugin bundled with Vim. By inducing a user to open a crafted URL (e.g., using the `scp://` protocol handler), an attacker can execute arbitrary shell commands with the privileges of the Vim process. Version 9.2.0073 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28418",
                                "url": "https://ubuntu.com/security/CVE-2026-28418",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0074, a heap-based buffer overflow out-of-bounds read exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file, Vim can be tricked into reading up to 7 bytes beyond the allocated memory boundary. Version 9.2.0074 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28419",
                                "url": "https://ubuntu.com/security/CVE-2026-28419",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0075, a heap-based buffer underflow exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file where a delimiter appears at the start of a line, Vim attempts to read memory immediately preceding the allocated buffer. Version 9.2.0075 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28421",
                                "url": "https://ubuntu.com/security/CVE-2026-28421",
                                "cve_description": "Vim is an open source, command line text editor. Versions prior to 9.2.0077 have a heap-buffer-overflow and a segmentation fault (SEGV) exist in Vim's swap file recovery logic. Both are caused by unvalidated fields read from crafted pointer blocks within a swap file. Version 9.2.0077 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Buffer Overflow",
                            "    - debian/patches/CVE-2026-26269.patch: Limit writing to max KEYBUFLEN",
                            "      bytes to prevent writing out of bounds.",
                            "    - debian/patches/CVE-2026-28420.patch: Use VTERM_MAX_CHARS_PER_CELL * 4",
                            "      for ga_grow() to ensure sufficient space. Add a boundary check to the",
                            "      character loop to prevent index out-of-bounds access.",
                            "    - debian/patches/CVE-2026-28422.patch: Update the size check to account",
                            "      for the byte length of the fill character (using MB_CHAR2LEN).",
                            "    - debian/patches/CVE-2026-25749.patch: Limit strncpy to the length",
                            "      of the buffer (MAXPATHL)",
                            "    - CVE-2026-26269",
                            "    - CVE-2026-28420",
                            "    - CVE-2026-28422",
                            "    - CVE-2026-25749",
                            "  * SECURITY UPDATE: Command Injection",
                            "    - debian/patches/CVE-2026-28417.patch: Implement stricter RFC1123",
                            "      hostname and IP validation. Use shellescape() for the provided",
                            "      hostname and port.",
                            "    - CVE-2026-28417",
                            "  * SECURITY UPDATE: Out of Bounds Read",
                            "    - debian/patches/CVE-2026-28418.patch: Check for end of buffer",
                            "      and return early.",
                            "    - CVE-2026-28418",
                            "  * SECURITY UPDATE: Buffer Underflow",
                            "    - debian/patches/CVE-2026-28419.patch: Add a check to ensure the",
                            "      delimiter (p_7f) is not at the start of the buffer (lbuf) before",
                            "      attempting to isolate the tag name.",
                            "    - CVE-2026-28419",
                            "  * SECURITY UPDATE: Denial of Service",
                            "    - debian/patches/CVE-2026-28421.patch: Add bounds checks on",
                            "      pe_page_count and pe_bnum against mf_blocknr_max before descending",
                            "      into the block tree, and validate pe_old_lnum >= 1 and",
                            "      pe_line_count > 0 before calling readfile().",
                            "    - CVE-2026-28421",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.26",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Bruce Cable <bruce.cable@canonical.com>",
                        "date": "Wed, 11 Mar 2026 10:44:44 +1100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "vim-tiny",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.24",
                    "version": "2:8.2.3995-1ubuntu2.24"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.26",
                    "version": "2:8.2.3995-1ubuntu2.26"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-26269",
                        "url": "https://ubuntu.com/security/CVE-2026-26269",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.1.2148, a stack buffer overflow vulnerability exists in Vim's NetBeans integration when processing the specialKeys command, affecting Vim builds that enable and use the NetBeans feature. The Stack buffer overflow exists in special_keys() (in src/netbeans.c). The while (*tok) loop writes two bytes per iteration into a 64-byte stack buffer (keybuf) with no bounds check. A malicious NetBeans server can overflow keybuf with a single specialKeys command. The issue has been fixed as of Vim patch v9.1.2148.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-02-13 20:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28420",
                        "url": "https://ubuntu.com/security/CVE-2026-28420",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0076, a heap-based buffer overflow WRITE and an out-of-bounds READ exist in Vim's terminal emulator when processing maximum combining characters from Unicode supplementary planes. Version 9.2.0076 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28422",
                        "url": "https://ubuntu.com/security/CVE-2026-28422",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0078, a stack-buffer-overflow occurs in `build_stl_str_hl()` when rendering a statusline with a multi-byte fill character on a very wide terminal. Version 9.2.0078 patches the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-25749",
                        "url": "https://ubuntu.com/security/CVE-2026-25749",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.1.2132, a heap buffer overflow vulnerability exists in Vim's tag file resolution logic when processing the 'helpfile' option. The vulnerability is located in the get_tagfname() function in src/tag.c. When processing help file tags, Vim copies the user-controlled 'helpfile' option value into a fixed-size heap buffer of MAXPATHL + 1 bytes (typically 4097 bytes) using an unsafe STRCPY() operation without any bounds checking. This issue has been patched in version 9.1.2132.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-02-06 23:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28417",
                        "url": "https://ubuntu.com/security/CVE-2026-28417",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0073, an OS command injection vulnerability exists in the `netrw` standard plugin bundled with Vim. By inducing a user to open a crafted URL (e.g., using the `scp://` protocol handler), an attacker can execute arbitrary shell commands with the privileges of the Vim process. Version 9.2.0073 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28418",
                        "url": "https://ubuntu.com/security/CVE-2026-28418",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0074, a heap-based buffer overflow out-of-bounds read exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file, Vim can be tricked into reading up to 7 bytes beyond the allocated memory boundary. Version 9.2.0074 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28419",
                        "url": "https://ubuntu.com/security/CVE-2026-28419",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0075, a heap-based buffer underflow exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file where a delimiter appears at the start of a line, Vim attempts to read memory immediately preceding the allocated buffer. Version 9.2.0075 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28421",
                        "url": "https://ubuntu.com/security/CVE-2026-28421",
                        "cve_description": "Vim is an open source, command line text editor. Versions prior to 9.2.0077 have a heap-buffer-overflow and a segmentation fault (SEGV) exist in Vim's swap file recovery logic. Both are caused by unvalidated fields read from crafted pointer blocks within a swap file. Version 9.2.0077 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-26269",
                                "url": "https://ubuntu.com/security/CVE-2026-26269",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.1.2148, a stack buffer overflow vulnerability exists in Vim's NetBeans integration when processing the specialKeys command, affecting Vim builds that enable and use the NetBeans feature. The Stack buffer overflow exists in special_keys() (in src/netbeans.c). The while (*tok) loop writes two bytes per iteration into a 64-byte stack buffer (keybuf) with no bounds check. A malicious NetBeans server can overflow keybuf with a single specialKeys command. The issue has been fixed as of Vim patch v9.1.2148.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-02-13 20:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28420",
                                "url": "https://ubuntu.com/security/CVE-2026-28420",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0076, a heap-based buffer overflow WRITE and an out-of-bounds READ exist in Vim's terminal emulator when processing maximum combining characters from Unicode supplementary planes. Version 9.2.0076 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28422",
                                "url": "https://ubuntu.com/security/CVE-2026-28422",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0078, a stack-buffer-overflow occurs in `build_stl_str_hl()` when rendering a statusline with a multi-byte fill character on a very wide terminal. Version 9.2.0078 patches the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-25749",
                                "url": "https://ubuntu.com/security/CVE-2026-25749",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.1.2132, a heap buffer overflow vulnerability exists in Vim's tag file resolution logic when processing the 'helpfile' option. The vulnerability is located in the get_tagfname() function in src/tag.c. When processing help file tags, Vim copies the user-controlled 'helpfile' option value into a fixed-size heap buffer of MAXPATHL + 1 bytes (typically 4097 bytes) using an unsafe STRCPY() operation without any bounds checking. This issue has been patched in version 9.1.2132.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-02-06 23:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28417",
                                "url": "https://ubuntu.com/security/CVE-2026-28417",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0073, an OS command injection vulnerability exists in the `netrw` standard plugin bundled with Vim. By inducing a user to open a crafted URL (e.g., using the `scp://` protocol handler), an attacker can execute arbitrary shell commands with the privileges of the Vim process. Version 9.2.0073 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28418",
                                "url": "https://ubuntu.com/security/CVE-2026-28418",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0074, a heap-based buffer overflow out-of-bounds read exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file, Vim can be tricked into reading up to 7 bytes beyond the allocated memory boundary. Version 9.2.0074 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28419",
                                "url": "https://ubuntu.com/security/CVE-2026-28419",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0075, a heap-based buffer underflow exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file where a delimiter appears at the start of a line, Vim attempts to read memory immediately preceding the allocated buffer. Version 9.2.0075 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28421",
                                "url": "https://ubuntu.com/security/CVE-2026-28421",
                                "cve_description": "Vim is an open source, command line text editor. Versions prior to 9.2.0077 have a heap-buffer-overflow and a segmentation fault (SEGV) exist in Vim's swap file recovery logic. Both are caused by unvalidated fields read from crafted pointer blocks within a swap file. Version 9.2.0077 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Buffer Overflow",
                            "    - debian/patches/CVE-2026-26269.patch: Limit writing to max KEYBUFLEN",
                            "      bytes to prevent writing out of bounds.",
                            "    - debian/patches/CVE-2026-28420.patch: Use VTERM_MAX_CHARS_PER_CELL * 4",
                            "      for ga_grow() to ensure sufficient space. Add a boundary check to the",
                            "      character loop to prevent index out-of-bounds access.",
                            "    - debian/patches/CVE-2026-28422.patch: Update the size check to account",
                            "      for the byte length of the fill character (using MB_CHAR2LEN).",
                            "    - debian/patches/CVE-2026-25749.patch: Limit strncpy to the length",
                            "      of the buffer (MAXPATHL)",
                            "    - CVE-2026-26269",
                            "    - CVE-2026-28420",
                            "    - CVE-2026-28422",
                            "    - CVE-2026-25749",
                            "  * SECURITY UPDATE: Command Injection",
                            "    - debian/patches/CVE-2026-28417.patch: Implement stricter RFC1123",
                            "      hostname and IP validation. Use shellescape() for the provided",
                            "      hostname and port.",
                            "    - CVE-2026-28417",
                            "  * SECURITY UPDATE: Out of Bounds Read",
                            "    - debian/patches/CVE-2026-28418.patch: Check for end of buffer",
                            "      and return early.",
                            "    - CVE-2026-28418",
                            "  * SECURITY UPDATE: Buffer Underflow",
                            "    - debian/patches/CVE-2026-28419.patch: Add a check to ensure the",
                            "      delimiter (p_7f) is not at the start of the buffer (lbuf) before",
                            "      attempting to isolate the tag name.",
                            "    - CVE-2026-28419",
                            "  * SECURITY UPDATE: Denial of Service",
                            "    - debian/patches/CVE-2026-28421.patch: Add bounds checks on",
                            "      pe_page_count and pe_bnum against mf_blocknr_max before descending",
                            "      into the block tree, and validate pe_old_lnum >= 1 and",
                            "      pe_line_count > 0 before calling readfile().",
                            "    - CVE-2026-28421",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.26",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Bruce Cable <bruce.cable@canonical.com>",
                        "date": "Wed, 11 Mar 2026 10:44:44 +1100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "xxd",
                "from_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.24",
                    "version": "2:8.2.3995-1ubuntu2.24"
                },
                "to_version": {
                    "source_package_name": "vim",
                    "source_package_version": "2:8.2.3995-1ubuntu2.26",
                    "version": "2:8.2.3995-1ubuntu2.26"
                },
                "cves": [
                    {
                        "cve": "CVE-2026-26269",
                        "url": "https://ubuntu.com/security/CVE-2026-26269",
                        "cve_description": "Vim is an open source, command line text editor. Prior to 9.1.2148, a stack buffer overflow vulnerability exists in Vim's NetBeans integration when processing the specialKeys command, affecting Vim builds that enable and use the NetBeans feature. The Stack buffer overflow exists in special_keys() (in src/netbeans.c). The while (*tok) loop writes two bytes per iteration into a 64-byte stack buffer (keybuf) with no bounds check. A malicious NetBeans server can overflow keybuf with a single specialKeys command. The issue has been fixed as of Vim patch v9.1.2148.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-02-13 20:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28420",
                        "url": "https://ubuntu.com/security/CVE-2026-28420",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0076, a heap-based buffer overflow WRITE and an out-of-bounds READ exist in Vim's terminal emulator when processing maximum combining characters from Unicode supplementary planes. Version 9.2.0076 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28422",
                        "url": "https://ubuntu.com/security/CVE-2026-28422",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0078, a stack-buffer-overflow occurs in `build_stl_str_hl()` when rendering a statusline with a multi-byte fill character on a very wide terminal. Version 9.2.0078 patches the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-25749",
                        "url": "https://ubuntu.com/security/CVE-2026-25749",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.1.2132, a heap buffer overflow vulnerability exists in Vim's tag file resolution logic when processing the 'helpfile' option. The vulnerability is located in the get_tagfname() function in src/tag.c. When processing help file tags, Vim copies the user-controlled 'helpfile' option value into a fixed-size heap buffer of MAXPATHL + 1 bytes (typically 4097 bytes) using an unsafe STRCPY() operation without any bounds checking. This issue has been patched in version 9.1.2132.",
                        "cve_priority": "low",
                        "cve_public_date": "2026-02-06 23:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28417",
                        "url": "https://ubuntu.com/security/CVE-2026-28417",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0073, an OS command injection vulnerability exists in the `netrw` standard plugin bundled with Vim. By inducing a user to open a crafted URL (e.g., using the `scp://` protocol handler), an attacker can execute arbitrary shell commands with the privileges of the Vim process. Version 9.2.0073 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28418",
                        "url": "https://ubuntu.com/security/CVE-2026-28418",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0074, a heap-based buffer overflow out-of-bounds read exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file, Vim can be tricked into reading up to 7 bytes beyond the allocated memory boundary. Version 9.2.0074 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28419",
                        "url": "https://ubuntu.com/security/CVE-2026-28419",
                        "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0075, a heap-based buffer underflow exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file where a delimiter appears at the start of a line, Vim attempts to read memory immediately preceding the allocated buffer. Version 9.2.0075 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-28421",
                        "url": "https://ubuntu.com/security/CVE-2026-28421",
                        "cve_description": "Vim is an open source, command line text editor. Versions prior to 9.2.0077 have a heap-buffer-overflow and a segmentation fault (SEGV) exist in Vim's swap file recovery logic. Both are caused by unvalidated fields read from crafted pointer blocks within a swap file. Version 9.2.0077 fixes the issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-02-27 22:16:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [],
                "changes": [
                    {
                        "cves": [
                            {
                                "cve": "CVE-2026-26269",
                                "url": "https://ubuntu.com/security/CVE-2026-26269",
                                "cve_description": "Vim is an open source, command line text editor. Prior to 9.1.2148, a stack buffer overflow vulnerability exists in Vim's NetBeans integration when processing the specialKeys command, affecting Vim builds that enable and use the NetBeans feature. The Stack buffer overflow exists in special_keys() (in src/netbeans.c). The while (*tok) loop writes two bytes per iteration into a 64-byte stack buffer (keybuf) with no bounds check. A malicious NetBeans server can overflow keybuf with a single specialKeys command. The issue has been fixed as of Vim patch v9.1.2148.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-02-13 20:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28420",
                                "url": "https://ubuntu.com/security/CVE-2026-28420",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0076, a heap-based buffer overflow WRITE and an out-of-bounds READ exist in Vim's terminal emulator when processing maximum combining characters from Unicode supplementary planes. Version 9.2.0076 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28422",
                                "url": "https://ubuntu.com/security/CVE-2026-28422",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0078, a stack-buffer-overflow occurs in `build_stl_str_hl()` when rendering a statusline with a multi-byte fill character on a very wide terminal. Version 9.2.0078 patches the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-25749",
                                "url": "https://ubuntu.com/security/CVE-2026-25749",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.1.2132, a heap buffer overflow vulnerability exists in Vim's tag file resolution logic when processing the 'helpfile' option. The vulnerability is located in the get_tagfname() function in src/tag.c. When processing help file tags, Vim copies the user-controlled 'helpfile' option value into a fixed-size heap buffer of MAXPATHL + 1 bytes (typically 4097 bytes) using an unsafe STRCPY() operation without any bounds checking. This issue has been patched in version 9.1.2132.",
                                "cve_priority": "low",
                                "cve_public_date": "2026-02-06 23:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28417",
                                "url": "https://ubuntu.com/security/CVE-2026-28417",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0073, an OS command injection vulnerability exists in the `netrw` standard plugin bundled with Vim. By inducing a user to open a crafted URL (e.g., using the `scp://` protocol handler), an attacker can execute arbitrary shell commands with the privileges of the Vim process. Version 9.2.0073 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28418",
                                "url": "https://ubuntu.com/security/CVE-2026-28418",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0074, a heap-based buffer overflow out-of-bounds read exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file, Vim can be tricked into reading up to 7 bytes beyond the allocated memory boundary. Version 9.2.0074 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28419",
                                "url": "https://ubuntu.com/security/CVE-2026-28419",
                                "cve_description": "Vim is an open source, command line text editor. Prior to version 9.2.0075, a heap-based buffer underflow exists in Vim's Emacs-style tags file parsing logic. When processing a malformed tags file where a delimiter appears at the start of a line, Vim attempts to read memory immediately preceding the allocated buffer. Version 9.2.0075 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-28421",
                                "url": "https://ubuntu.com/security/CVE-2026-28421",
                                "cve_description": "Vim is an open source, command line text editor. Versions prior to 9.2.0077 have a heap-buffer-overflow and a segmentation fault (SEGV) exist in Vim's swap file recovery logic. Both are caused by unvalidated fields read from crafted pointer blocks within a swap file. Version 9.2.0077 fixes the issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-02-27 22:16:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * SECURITY UPDATE: Buffer Overflow",
                            "    - debian/patches/CVE-2026-26269.patch: Limit writing to max KEYBUFLEN",
                            "      bytes to prevent writing out of bounds.",
                            "    - debian/patches/CVE-2026-28420.patch: Use VTERM_MAX_CHARS_PER_CELL * 4",
                            "      for ga_grow() to ensure sufficient space. Add a boundary check to the",
                            "      character loop to prevent index out-of-bounds access.",
                            "    - debian/patches/CVE-2026-28422.patch: Update the size check to account",
                            "      for the byte length of the fill character (using MB_CHAR2LEN).",
                            "    - debian/patches/CVE-2026-25749.patch: Limit strncpy to the length",
                            "      of the buffer (MAXPATHL)",
                            "    - CVE-2026-26269",
                            "    - CVE-2026-28420",
                            "    - CVE-2026-28422",
                            "    - CVE-2026-25749",
                            "  * SECURITY UPDATE: Command Injection",
                            "    - debian/patches/CVE-2026-28417.patch: Implement stricter RFC1123",
                            "      hostname and IP validation. Use shellescape() for the provided",
                            "      hostname and port.",
                            "    - CVE-2026-28417",
                            "  * SECURITY UPDATE: Out of Bounds Read",
                            "    - debian/patches/CVE-2026-28418.patch: Check for end of buffer",
                            "      and return early.",
                            "    - CVE-2026-28418",
                            "  * SECURITY UPDATE: Buffer Underflow",
                            "    - debian/patches/CVE-2026-28419.patch: Add a check to ensure the",
                            "      delimiter (p_7f) is not at the start of the buffer (lbuf) before",
                            "      attempting to isolate the tag name.",
                            "    - CVE-2026-28419",
                            "  * SECURITY UPDATE: Denial of Service",
                            "    - debian/patches/CVE-2026-28421.patch: Add bounds checks on",
                            "      pe_page_count and pe_bnum against mf_blocknr_max before descending",
                            "      into the block tree, and validate pe_old_lnum >= 1 and",
                            "      pe_line_count > 0 before calling readfile().",
                            "    - CVE-2026-28421",
                            ""
                        ],
                        "package": "vim",
                        "version": "2:8.2.3995-1ubuntu2.26",
                        "urgency": "medium",
                        "distributions": "jammy-security",
                        "launchpad_bugs_fixed": [],
                        "author": "Bruce Cable <bruce.cable@canonical.com>",
                        "date": "Wed, 11 Mar 2026 10:44:44 +1100"
                    }
                ],
                "notes": null,
                "is_version_downgrade": false
            }
        ],
        "snap": [
            {
                "name": "snapd",
                "from_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": "25939"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": "26383"
                }
            },
            {
                "name": "lxd",
                "from_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": "37983"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": "38472"
                }
            }
        ]
    },
    "added": {
        "deb": [
            {
                "name": "linux-headers-5.15.0-173",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.15.0-171.181",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.15.0-173.183",
                    "version": "5.15.0-173.183"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-71182",
                        "url": "https://ubuntu.com/security/CVE-2025-71182",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: j1939: make j1939_session_activate() fail if device is no longer registered  syzbot is still reporting    unregister_netdevice: waiting for vcan0 to become free. Usage count = 2  even after commit 93a27b5891b8 (\"can: j1939: add missing calls in NETDEV_UNREGISTER notification handler\") was added. A debug printk() patch found that j1939_session_activate() can succeed even after j1939_cancel_active_session() from j1939_netdev_notify(NETDEV_UNREGISTER) has completed.  Since j1939_cancel_active_session() is processed with the session list lock held, checking ndev->reg_state in j1939_session_activate() with the session list lock held can reliably close the race window.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2022-49465",
                        "url": "https://ubuntu.com/security/CVE-2022-49465",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  blk-throttle: Set BIO_THROTTLED when bio has been throttled  1.In current process, all bio will set the BIO_THROTTLED flag after __blk_throtl_bio().  2.If bio needs to be throttled, it will start the timer and stop submit bio directly. Bio will submit in blk_throtl_dispatch_work_fn() when the timer expires.But in the current process, if bio is throttled. The BIO_THROTTLED will be set to bio after timer start. If the bio has been completed, it may cause use-after-free blow.  BUG: KASAN: use-after-free in blk_throtl_bio+0x12f0/0x2c70 Read of size 2 at addr ffff88801b8902d4 by task fio/26380   dump_stack+0x9b/0xce  print_address_description.constprop.6+0x3e/0x60  kasan_report.cold.9+0x22/0x3a  blk_throtl_bio+0x12f0/0x2c70  submit_bio_checks+0x701/0x1550  submit_bio_noacct+0x83/0xc80  submit_bio+0xa7/0x330  mpage_readahead+0x380/0x500  read_pages+0x1c1/0xbf0  page_cache_ra_unbounded+0x471/0x6f0  do_page_cache_ra+0xda/0x110  ondemand_readahead+0x442/0xae0  page_cache_async_ra+0x210/0x300  generic_file_buffered_read+0x4d9/0x2130  generic_file_read_iter+0x315/0x490  blkdev_read_iter+0x113/0x1b0  aio_read+0x2ad/0x450  io_submit_one+0xc8e/0x1d60  __se_sys_io_submit+0x125/0x350  do_syscall_64+0x2d/0x40  entry_SYSCALL_64_after_hwframe+0x44/0xa9  Allocated by task 26380:  kasan_save_stack+0x19/0x40  __kasan_kmalloc.constprop.2+0xc1/0xd0  kmem_cache_alloc+0x146/0x440  mempool_alloc+0x125/0x2f0  bio_alloc_bioset+0x353/0x590  mpage_alloc+0x3b/0x240  do_mpage_readpage+0xddf/0x1ef0  mpage_readahead+0x264/0x500  read_pages+0x1c1/0xbf0  page_cache_ra_unbounded+0x471/0x6f0  do_page_cache_ra+0xda/0x110  ondemand_readahead+0x442/0xae0  page_cache_async_ra+0x210/0x300  generic_file_buffered_read+0x4d9/0x2130  generic_file_read_iter+0x315/0x490  blkdev_read_iter+0x113/0x1b0  aio_read+0x2ad/0x450  io_submit_one+0xc8e/0x1d60  __se_sys_io_submit+0x125/0x350  do_syscall_64+0x2d/0x40  entry_SYSCALL_64_after_hwframe+0x44/0xa9  Freed by task 0:  kasan_save_stack+0x19/0x40  kasan_set_track+0x1c/0x30  kasan_set_free_info+0x1b/0x30  __kasan_slab_free+0x111/0x160  kmem_cache_free+0x94/0x460  mempool_free+0xd6/0x320  bio_free+0xe0/0x130  bio_put+0xab/0xe0  bio_endio+0x3a6/0x5d0  blk_update_request+0x590/0x1370  scsi_end_request+0x7d/0x400  scsi_io_completion+0x1aa/0xe50  scsi_softirq_done+0x11b/0x240  blk_mq_complete_request+0xd4/0x120  scsi_mq_done+0xf0/0x200  virtscsi_vq_done+0xbc/0x150  vring_interrupt+0x179/0x390  __handle_irq_event_percpu+0xf7/0x490  handle_irq_event_percpu+0x7b/0x160  handle_irq_event+0xcc/0x170  handle_edge_irq+0x215/0xb20  common_interrupt+0x60/0x120  asm_common_interrupt+0x1e/0x40  Fix this by move BIO_THROTTLED set into the queue_lock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-26 07:01:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71180",
                        "url": "https://ubuntu.com/security/CVE-2025-71180",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  counter: interrupt-cnt: Drop IRQF_NO_THREAD flag  An IRQ handler can either be IRQF_NO_THREAD or acquire spinlock_t, as CONFIG_PROVE_RAW_LOCK_NESTING warns: ============================= [ BUG: Invalid wait context ] 6.18.0-rc1+git... #1 ----------------------------- some-user-space-process/1251 is trying to lock: (&counter->events_list_lock){....}-{3:3}, at: counter_push_event [counter] other info that might help us debug this: context-{2:2} no locks held by some-user-space-process/.... stack backtrace: CPU: 0 UID: 0 PID: 1251 Comm: some-user-space-process 6.18.0-rc1+git... #1 PREEMPT Call trace:  show_stack (C)  dump_stack_lvl  dump_stack  __lock_acquire  lock_acquire  _raw_spin_lock_irqsave  counter_push_event [counter]  interrupt_cnt_isr [interrupt_cnt]  __handle_irq_event_percpu  handle_irq_event  handle_simple_irq  handle_irq_desc  generic_handle_domain_irq  gpio_irq_handler  handle_irq_desc  generic_handle_domain_irq  gic_handle_irq  call_on_irq_stack  do_interrupt_handler  el0_interrupt  __el0_irq_handler_common  el0t_64_irq_handler  el0t_64_irq  ... and Sebastian correctly points out. Remove IRQF_NO_THREAD as an alternative to switching to raw_spinlock_t, because the latter would limit all potential nested locks to raw_spinlock_t only.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22980",
                        "url": "https://ubuntu.com/security/CVE-2026-22980",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfsd: provide locking for v4_end_grace  Writing to v4_end_grace can race with server shutdown and result in memory being accessed after it was freed - reclaim_str_hashtbl in particularly.  We cannot hold nfsd_mutex across the nfsd4_end_grace() call as that is held while client_tracking_op->init() is called and that can wait for an upcall to nfsdcltrack which can write to v4_end_grace, resulting in a deadlock.  nfsd4_end_grace() is also called by the landromat work queue and this doesn't require locking as server shutdown will stop the work and wait for it before freeing anything that nfsd4_end_grace() might access.  However, we must be sure that writing to v4_end_grace doesn't restart the work item after shutdown has already waited for it.  For this we add a new flag protected with nn->client_lock.  It is set only while it is safe to make client tracking calls, and v4_end_grace only schedules work while the flag is set with the spinlock held.  So this patch adds a nfsd_net field \"client_tracking_active\" which is set as described.  Another field \"grace_end_forced\", is set when v4_end_grace is written.  After this is set, and providing client_tracking_active is set, the laundromat is scheduled. This \"grace_end_forced\" field bypasses other checks for whether the grace period has finished.  This resolves a race which can result in use-after-free.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23021",
                        "url": "https://ubuntu.com/security/CVE-2026-23021",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: pegasus: fix memory leak in update_eth_regs_async()  When asynchronously writing to the device registers and if usb_submit_urb() fail, the code fail to release allocated to this point resources.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22976",
                        "url": "https://ubuntu.com/security/CVE-2026-22976",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate in qfq_reset  `qfq_class->leaf_qdisc->q.qlen > 0` does not imply that the class itself is active.  Two qfq_class objects may point to the same leaf_qdisc. This happens when:  1. one QFQ qdisc is attached to the dev as the root qdisc, and  2. another QFQ qdisc is temporarily referenced (e.g., via qdisc_get() / qdisc_put()) and is pending to be destroyed, as in function tc_new_tfilter.  When packets are enqueued through the root QFQ qdisc, the shared leaf_qdisc->q.qlen increases. At the same time, the second QFQ qdisc triggers qdisc_put and qdisc_destroy: the qdisc enters qfq_reset() with its own q->q.qlen == 0, but its class's leaf qdisc->q.qlen > 0. Therefore, the qfq_reset would wrongly deactivate an inactive aggregate and trigger a null-deref in qfq_deactivate_agg:  [    0.903172] BUG: kernel NULL pointer dereference, address: 0000000000000000 [    0.903571] #PF: supervisor write access in kernel mode [    0.903860] #PF: error_code(0x0002) - not-present page [    0.904177] PGD 10299b067 P4D 10299b067 PUD 10299c067 PMD 0 [    0.904502] Oops: Oops: 0002 [#1] SMP NOPTI [    0.904737] CPU: 0 UID: 0 PID: 135 Comm: exploit Not tainted 6.19.0-rc3+ #2 NONE [    0.905157] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014 [    0.905754] RIP: 0010:qfq_deactivate_agg (include/linux/list.h:992 (discriminator 2) include/linux/list.h:1006 (discriminator 2) net/sched/sch_qfq.c:1367 (discriminator 2) net/sched/sch_qfq.c:1393 (discriminator 2)) [    0.906046] Code: 0f 84 4d 01 00 00 48 89 70 18 8b 4b 10 48 c7 c2 ff ff ff ff 48 8b 78 08 48 d3 e2 48 21 f2 48 2b 13 48 8b 30 48 d3 ea 8b 4b 18 0  Code starting with the faulting instruction ===========================================    0:\t0f 84 4d 01 00 00    \tje     0x153    6:\t48 89 70 18          \tmov    %rsi,0x18(%rax)    a:\t8b 4b 10             \tmov    0x10(%rbx),%ecx    d:\t48 c7 c2 ff ff ff ff \tmov    $0xffffffffffffffff,%rdx   14:\t48 8b 78 08          \tmov    0x8(%rax),%rdi   18:\t48 d3 e2             \tshl    %cl,%rdx   1b:\t48 21 f2             \tand    %rsi,%rdx   1e:\t48 2b 13             \tsub    (%rbx),%rdx   21:\t48 8b 30             \tmov    (%rax),%rsi   24:\t48 d3 ea             \tshr    %cl,%rdx   27:\t8b 4b 18             \tmov    0x18(%rbx),%ecx \t... [    0.907095] RSP: 0018:ffffc900004a39a0 EFLAGS: 00010246 [    0.907368] RAX: ffff8881043a0880 RBX: ffff888102953340 RCX: 0000000000000000 [    0.907723] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 [    0.908100] RBP: ffff888102952180 R08: 0000000000000000 R09: 0000000000000000 [    0.908451] R10: ffff8881043a0000 R11: 0000000000000000 R12: ffff888102952000 [    0.908804] R13: ffff888102952180 R14: ffff8881043a0ad8 R15: ffff8881043a0880 [    0.909179] FS:  000000002a1a0380(0000) GS:ffff888196d8d000(0000) knlGS:0000000000000000 [    0.909572] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [    0.909857] CR2: 0000000000000000 CR3: 0000000102993002 CR4: 0000000000772ef0 [    0.910247] PKRU: 55555554 [    0.910391] Call Trace: [    0.910527]  <TASK> [    0.910638]  qfq_reset_qdisc (net/sched/sch_qfq.c:357 net/sched/sch_qfq.c:1485) [    0.910826]  qdisc_reset (include/linux/skbuff.h:2195 include/linux/skbuff.h:2501 include/linux/skbuff.h:3424 include/linux/skbuff.h:3430 net/sched/sch_generic.c:1036) [    0.911040]  __qdisc_destroy (net/sched/sch_generic.c:1076) [    0.911236]  tc_new_tfilter (net/sched/cls_api.c:2447) [    0.911447]  rtnetlink_rcv_msg (net/core/rtnetlink.c:6958) [    0.911663]  ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6861) [    0.911894]  netlink_rcv_skb (net/netlink/af_netlink.c:2550) [    0.912100]  netlink_unicast (net/netlink/af_netlink.c:1319 net/netlink/af_netlink.c:1344) [    0.912296]  ? __alloc_skb (net/core/skbuff.c:706) [    0.912484]  netlink_sendmsg (net/netlink/af ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-21 07:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22977",
                        "url": "https://ubuntu.com/security/CVE-2026-22977",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sock: fix hardened usercopy panic in sock_recv_errqueue  skbuff_fclone_cache was created without defining a usercopy region, [1] unlike skbuff_head_cache which properly whitelists the cb[] field. [2] This causes a usercopy BUG() when CONFIG_HARDENED_USERCOPY is enabled and the kernel attempts to copy sk_buff.cb data to userspace via sock_recv_errqueue() -> put_cmsg().  The crash occurs when: 1. TCP allocates an skb using alloc_skb_fclone()    (from skbuff_fclone_cache) [1] 2. The skb is cloned via skb_clone() using the pre-allocated fclone [3] 3. The cloned skb is queued to sk_error_queue for timestamp reporting 4. Userspace reads the error queue via recvmsg(MSG_ERRQUEUE) 5. sock_recv_errqueue() calls put_cmsg() to copy serr->ee from skb->cb [4] 6. __check_heap_object() fails because skbuff_fclone_cache has no    usercopy whitelist [5]  When cloned skbs allocated from skbuff_fclone_cache are used in the socket error queue, accessing the sock_exterr_skb structure in skb->cb via put_cmsg() triggers a usercopy hardening violation:  [    5.379589] usercopy: Kernel memory exposure attempt detected from SLUB object 'skbuff_fclone_cache' (offset 296, size 16)! [    5.382796] kernel BUG at mm/usercopy.c:102! [    5.383923] Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI [    5.384903] CPU: 1 UID: 0 PID: 138 Comm: poc_put_cmsg Not tainted 6.12.57 #7 [    5.384903] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [    5.384903] RIP: 0010:usercopy_abort+0x6c/0x80 [    5.384903] Code: 1a 86 51 48 c7 c2 40 15 1a 86 41 52 48 c7 c7 c0 15 1a 86 48 0f 45 d6 48 c7 c6 80 15 1a 86 48 89 c1 49 0f 45 f3 e8 84 27 88 ff <0f> 0b 490 [    5.384903] RSP: 0018:ffffc900006f77a8 EFLAGS: 00010246 [    5.384903] RAX: 000000000000006f RBX: ffff88800f0ad2a8 RCX: 1ffffffff0f72e74 [    5.384903] RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffffffff87b973a0 [    5.384903] RBP: 0000000000000010 R08: 0000000000000000 R09: fffffbfff0f72e74 [    5.384903] R10: 0000000000000003 R11: 79706f6372657375 R12: 0000000000000001 [    5.384903] R13: ffff88800f0ad2b8 R14: ffffea00003c2b40 R15: ffffea00003c2b00 [    5.384903] FS:  0000000011bc4380(0000) GS:ffff8880bf100000(0000) knlGS:0000000000000000 [    5.384903] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [    5.384903] CR2: 000056aa3b8e5fe4 CR3: 000000000ea26004 CR4: 0000000000770ef0 [    5.384903] PKRU: 55555554 [    5.384903] Call Trace: [    5.384903]  <TASK> [    5.384903]  __check_heap_object+0x9a/0xd0 [    5.384903]  __check_object_size+0x46c/0x690 [    5.384903]  put_cmsg+0x129/0x5e0 [    5.384903]  sock_recv_errqueue+0x22f/0x380 [    5.384903]  tls_sw_recvmsg+0x7ed/0x1960 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5 [    5.384903]  ? schedule+0x6d/0x270 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5 [    5.384903]  ? mutex_unlock+0x81/0xd0 [    5.384903]  ? __pfx_mutex_unlock+0x10/0x10 [    5.384903]  ? __pfx_tls_sw_recvmsg+0x10/0x10 [    5.384903]  ? _raw_spin_lock_irqsave+0x8f/0xf0 [    5.384903]  ? _raw_read_unlock_irqrestore+0x20/0x40 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5  The crash offset 296 corresponds to skb2->cb within skbuff_fclones:   - sizeof(struct sk_buff) = 232 - offsetof(struct sk_buff, cb) = 40 -   offset of skb2.cb in fclones = 232 + 40 = 272 - crash offset 296 =   272 + 24 (inside sock_exterr_skb.ee)  This patch uses a local stack variable as a bounce buffer to avoid the hardened usercopy check failure.  [1] https://elixir.bootlin.com/linux/v6.12.62/source/net/ipv4/tcp.c#L885 [2] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5104 [3] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5566 [4] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5491 [5] https://elixir.bootlin.com/linux/v6.12.62/source/mm/slub.c#L5719",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-21 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22982",
                        "url": "https://ubuntu.com/security/CVE-2026-22982",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: mscc: ocelot: Fix crash when adding interface under a lag  Commit 15faa1f67ab4 (\"lan966x: Fix crash when adding interface under a lag\") fixed a similar issue in the lan966x driver caused by a NULL pointer dereference. The ocelot_set_aggr_pgids() function in the ocelot driver has similar logic and is susceptible to the same crash.  This issue specifically affects the ocelot_vsc7514.c frontend, which leaves unused ports as NULL pointers. The felix_vsc9959.c frontend is unaffected as it uses the DSA framework which registers all ports.  Fix this by checking if the port pointer is valid before accessing it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23019",
                        "url": "https://ubuntu.com/security/CVE-2026-23019",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: marvell: prestera: fix NULL dereference on devlink_alloc() failure  devlink_alloc() may return NULL on allocation failure, but prestera_devlink_alloc() unconditionally calls devlink_priv() on the returned pointer.  This leads to a NULL pointer dereference if devlink allocation fails. Add a check for a NULL devlink pointer and return NULL early to avoid the crash.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-22121",
                        "url": "https://ubuntu.com/security/CVE-2025-22121",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: fix out-of-bound read in ext4_xattr_inode_dec_ref_all()  There's issue as follows: BUG: KASAN: use-after-free in ext4_xattr_inode_dec_ref_all+0x6ff/0x790 Read of size 4 at addr ffff88807b003000 by task syz-executor.0/15172  CPU: 3 PID: 15172 Comm: syz-executor.0 Call Trace:  __dump_stack lib/dump_stack.c:82 [inline]  dump_stack+0xbe/0xfd lib/dump_stack.c:123  print_address_description.constprop.0+0x1e/0x280 mm/kasan/report.c:400  __kasan_report.cold+0x6c/0x84 mm/kasan/report.c:560  kasan_report+0x3a/0x50 mm/kasan/report.c:585  ext4_xattr_inode_dec_ref_all+0x6ff/0x790 fs/ext4/xattr.c:1137  ext4_xattr_delete_inode+0x4c7/0xda0 fs/ext4/xattr.c:2896  ext4_evict_inode+0xb3b/0x1670 fs/ext4/inode.c:323  evict+0x39f/0x880 fs/inode.c:622  iput_final fs/inode.c:1746 [inline]  iput fs/inode.c:1772 [inline]  iput+0x525/0x6c0 fs/inode.c:1758  ext4_orphan_cleanup fs/ext4/super.c:3298 [inline]  ext4_fill_super+0x8c57/0xba40 fs/ext4/super.c:5300  mount_bdev+0x355/0x410 fs/super.c:1446  legacy_get_tree+0xfe/0x220 fs/fs_context.c:611  vfs_get_tree+0x8d/0x2f0 fs/super.c:1576  do_new_mount fs/namespace.c:2983 [inline]  path_mount+0x119a/0x1ad0 fs/namespace.c:3316  do_mount+0xfc/0x110 fs/namespace.c:3329  __do_sys_mount fs/namespace.c:3540 [inline]  __se_sys_mount+0x219/0x2e0 fs/namespace.c:3514  do_syscall_64+0x33/0x40 arch/x86/entry/common.c:46  entry_SYSCALL_64_after_hwframe+0x67/0xd1  Memory state around the buggy address:  ffff88807b002f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ffff88807b002f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffff88807b003000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff                    ^  ffff88807b003080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ffff88807b003100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  Above issue happens as ext4_xattr_delete_inode() isn't check xattr is valid if xattr is in inode. To solve above issue call xattr_check_inode() check if xattr if valid in inode. In fact, we can directly verify in ext4_iget_extra_inode(), so that there is no divergent verification.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22992",
                        "url": "https://ubuntu.com/security/CVE-2026-22992",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: return the handler error from mon_handle_auth_done()  Currently any error from ceph_auth_handle_reply_done() is propagated via finish_auth() but isn't returned from mon_handle_auth_done().  This results in higher layers learning that (despite the monitor considering us to be successfully authenticated) something went wrong in the authentication phase and reacting accordingly, but msgr2 still trying to proceed with establishing the session in the background.  In the case of secure mode this can trigger a WARN in setup_crypto() and later lead to a NULL pointer dereference inside of prepare_auth_signature().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22991",
                        "url": "https://ubuntu.com/security/CVE-2026-22991",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make free_choose_arg_map() resilient to partial allocation  free_choose_arg_map() may dereference a NULL pointer if its caller fails after a partial allocation.  For example, in decode_choose_args(), if allocation of arg_map->args fails, execution jumps to the fail label and free_choose_arg_map() is called. Since arg_map->size is updated to a non-zero value before memory allocation, free_choose_arg_map() will iterate over arg_map->args and dereference a NULL pointer.  To prevent this potential NULL pointer dereference and make free_choose_arg_map() more resilient, add checks for pointers before iterating.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22990",
                        "url": "https://ubuntu.com/security/CVE-2026-22990",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: replace overzealous BUG_ON in osdmap_apply_incremental()  If the osdmap is (maliciously) corrupted such that the incremental osdmap epoch is different from what is expected, there is no need to BUG.  Instead, just declare the incremental osdmap to be invalid.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22984",
                        "url": "https://ubuntu.com/security/CVE-2026-22984",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: prevent potential out-of-bounds reads in handle_auth_done()  Perform an explicit bounds check on payload_len to avoid a possible out-of-bounds access in the callout.  [ idryomov: changelog ]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22978",
                        "url": "https://ubuntu.com/security/CVE-2026-22978",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: avoid kernel-infoleak from struct iw_point  struct iw_point has a 32bit hole on 64bit arches.  struct iw_point {   void __user   *pointer;       /* Pointer to the data  (in user space) */   __u16         length;         /* number of fields or size in bytes */   __u16         flags;          /* Optional params */ };  Make sure to zero the structure to avoid disclosing 32bits of kernel data to user space.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23020",
                        "url": "https://ubuntu.com/security/CVE-2026-23020",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: 3com: 3c59x: fix possible null dereference in vortex_probe1()  pdev can be null and free_ring: can be called in 1297 with a null pdev.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-49968",
                        "url": "https://ubuntu.com/security/CVE-2024-49968",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: filesystems without casefold feature cannot be mounted with siphash  When mounting the ext4 filesystem, if the default hash version is set to DX_HASH_SIPHASH but the casefold feature is not set, exit the mounting.",
                        "cve_priority": "low",
                        "cve_public_date": "2024-10-21 18:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-36927",
                        "url": "https://ubuntu.com/security/CVE-2024-36927",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: Fix uninit-value access in __ip_make_skb()  KMSAN reported uninit-value access in __ip_make_skb() [1].  __ip_make_skb() tests HDRINCL to know if the skb has icmphdr. However, HDRINCL can cause a race condition. If calling setsockopt(2) with IP_HDRINCL changes HDRINCL while __ip_make_skb() is running, the function will access icmphdr in the skb even if it is not included. This causes the issue reported by KMSAN.  Check FLOWI_FLAG_KNOWN_NH on fl4->flowi4_flags instead of testing HDRINCL on the socket.  Also, fl4->fl4_icmp_type and fl4->fl4_icmp_code are not initialized. These are union in struct flowi4 and are implicitly initialized by flowi4_init_output(), but we should not rely on specific union layout.  Initialize these explicitly in raw_sendmsg().  [1] BUG: KMSAN: uninit-value in __ip_make_skb+0x2b74/0x2d20 net/ipv4/ip_output.c:1481  __ip_make_skb+0x2b74/0x2d20 net/ipv4/ip_output.c:1481  ip_finish_skb include/net/ip.h:243 [inline]  ip_push_pending_frames+0x4c/0x5c0 net/ipv4/ip_output.c:1508  raw_sendmsg+0x2381/0x2690 net/ipv4/raw.c:654  inet_sendmsg+0x27b/0x2a0 net/ipv4/af_inet.c:851  sock_sendmsg_nosec net/socket.c:730 [inline]  __sock_sendmsg+0x274/0x3c0 net/socket.c:745  __sys_sendto+0x62c/0x7b0 net/socket.c:2191  __do_sys_sendto net/socket.c:2203 [inline]  __se_sys_sendto net/socket.c:2199 [inline]  __x64_sys_sendto+0x130/0x200 net/socket.c:2199  do_syscall_64+0xd8/0x1f0 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x6d/0x75  Uninit was created at:  slab_post_alloc_hook mm/slub.c:3804 [inline]  slab_alloc_node mm/slub.c:3845 [inline]  kmem_cache_alloc_node+0x5f6/0xc50 mm/slub.c:3888  kmalloc_reserve+0x13c/0x4a0 net/core/skbuff.c:577  __alloc_skb+0x35a/0x7c0 net/core/skbuff.c:668  alloc_skb include/linux/skbuff.h:1318 [inline]  __ip_append_data+0x49ab/0x68c0 net/ipv4/ip_output.c:1128  ip_append_data+0x1e7/0x260 net/ipv4/ip_output.c:1365  raw_sendmsg+0x22b1/0x2690 net/ipv4/raw.c:648  inet_sendmsg+0x27b/0x2a0 net/ipv4/af_inet.c:851  sock_sendmsg_nosec net/socket.c:730 [inline]  __sock_sendmsg+0x274/0x3c0 net/socket.c:745  __sys_sendto+0x62c/0x7b0 net/socket.c:2191  __do_sys_sendto net/socket.c:2203 [inline]  __se_sys_sendto net/socket.c:2199 [inline]  __x64_sys_sendto+0x130/0x200 net/socket.c:2199  do_syscall_64+0xd8/0x1f0 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x6d/0x75  CPU: 1 PID: 15709 Comm: syz-executor.7 Not tainted 6.8.0-11567-gb3603fcb79b1 #25 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-1.fc39 04/01/2014",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-05-30 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-36903",
                        "url": "https://ubuntu.com/security/CVE-2024-36903",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: Fix potential uninit-value access in __ip6_make_skb()  As it was done in commit fc1092f51567 (\"ipv4: Fix uninit-value access in __ip_make_skb()\") for IPv4, check FLOWI_FLAG_KNOWN_NH on fl6->flowi6_flags instead of testing HDRINCL on the socket to avoid a race condition which causes uninit-value access.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-05-30 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38556",
                        "url": "https://ubuntu.com/security/CVE-2025-38556",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  HID: core: Harden s32ton() against conversion to 0 bits  Testing by the syzbot fuzzer showed that the HID core gets a shift-out-of-bounds exception when it tries to convert a 32-bit quantity to a 0-bit quantity.  Ideally this should never occur, but there are buggy devices and some might have a report field with size set to zero; we shouldn't reject the report or the device just because of that.  Instead, harden the s32ton() routine so that it returns a reasonable result instead of crashing when it is called with the number of bits set to 0 -- the same as what snto32() does.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-08-19 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-46830",
                        "url": "https://ubuntu.com/security/CVE-2024-46830",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: x86: Acquire kvm->srcu when handling KVM_SET_VCPU_EVENTS  Grab kvm->srcu when processing KVM_SET_VCPU_EVENTS, as KVM will forcibly leave nested VMX/SVM if SMM mode is being toggled, and leaving nested VMX reads guest memory.  Note, kvm_vcpu_ioctl_x86_set_vcpu_events() can also be called from KVM_RUN via sync_regs(), which already holds SRCU.  I.e. trying to precisely use kvm_vcpu_srcu_read_lock() around the problematic SMM code would cause problems.  Acquiring SRCU isn't all that expensive, so for simplicity, grab it unconditionally for KVM_SET_VCPU_EVENTS.   =============================  WARNING: suspicious RCU usage  6.10.0-rc7-332d2c1d713e-next-vm #552 Not tainted  -----------------------------  include/linux/kvm_host.h:1027 suspicious rcu_dereference_check() usage!   other info that might help us debug this:   rcu_scheduler_active = 2, debug_locks = 1  1 lock held by repro/1071:   #0: ffff88811e424430 (&vcpu->mutex){+.+.}-{3:3}, at: kvm_vcpu_ioctl+0x7d/0x970 [kvm]   stack backtrace:  CPU: 15 PID: 1071 Comm: repro Not tainted 6.10.0-rc7-332d2c1d713e-next-vm #552  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015  Call Trace:   <TASK>   dump_stack_lvl+0x7f/0x90   lockdep_rcu_suspicious+0x13f/0x1a0   kvm_vcpu_gfn_to_memslot+0x168/0x190 [kvm]   kvm_vcpu_read_guest+0x3e/0x90 [kvm]   nested_vmx_load_msr+0x6b/0x1d0 [kvm_intel]   load_vmcs12_host_state+0x432/0xb40 [kvm_intel]   vmx_leave_nested+0x30/0x40 [kvm_intel]   kvm_vcpu_ioctl_x86_set_vcpu_events+0x15d/0x2b0 [kvm]   kvm_arch_vcpu_ioctl+0x1107/0x1750 [kvm]   ? mark_held_locks+0x49/0x70   ? kvm_vcpu_ioctl+0x7d/0x970 [kvm]   ? kvm_vcpu_ioctl+0x497/0x970 [kvm]   kvm_vcpu_ioctl+0x497/0x970 [kvm]   ? lock_acquire+0xba/0x2d0   ? find_held_lock+0x2b/0x80   ? do_user_addr_fault+0x40c/0x6f0   ? lock_release+0xb7/0x270   __x64_sys_ioctl+0x82/0xb0   do_syscall_64+0x6c/0x170   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7ff11eb1b539   </TASK>",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-09-27 13:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38129",
                        "url": "https://ubuntu.com/security/CVE-2025-38129",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  page_pool: Fix use-after-free in page_pool_recycle_in_ring  syzbot reported a uaf in page_pool_recycle_in_ring:  BUG: KASAN: slab-use-after-free in lock_release+0x151/0xa30 kernel/locking/lockdep.c:5862 Read of size 8 at addr ffff8880286045a0 by task syz.0.284/6943  CPU: 0 UID: 0 PID: 6943 Comm: syz.0.284 Not tainted 6.13.0-rc3-syzkaller-gdfa94ce54f41 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0x169/0x550 mm/kasan/report.c:489  kasan_report+0x143/0x180 mm/kasan/report.c:602  lock_release+0x151/0xa30 kernel/locking/lockdep.c:5862  __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:165 [inline]  _raw_spin_unlock_bh+0x1b/0x40 kernel/locking/spinlock.c:210  spin_unlock_bh include/linux/spinlock.h:396 [inline]  ptr_ring_produce_bh include/linux/ptr_ring.h:164 [inline]  page_pool_recycle_in_ring net/core/page_pool.c:707 [inline]  page_pool_put_unrefed_netmem+0x748/0xb00 net/core/page_pool.c:826  page_pool_put_netmem include/net/page_pool/helpers.h:323 [inline]  page_pool_put_full_netmem include/net/page_pool/helpers.h:353 [inline]  napi_pp_put_page+0x149/0x2b0 net/core/skbuff.c:1036  skb_pp_recycle net/core/skbuff.c:1047 [inline]  skb_free_head net/core/skbuff.c:1094 [inline]  skb_release_data+0x6c4/0x8a0 net/core/skbuff.c:1125  skb_release_all net/core/skbuff.c:1190 [inline]  __kfree_skb net/core/skbuff.c:1204 [inline]  sk_skb_reason_drop+0x1c9/0x380 net/core/skbuff.c:1242  kfree_skb_reason include/linux/skbuff.h:1263 [inline]  __skb_queue_purge_reason include/linux/skbuff.h:3343 [inline]  root cause is:  page_pool_recycle_in_ring   ptr_ring_produce     spin_lock(&r->producer_lock);     WRITE_ONCE(r->queue[r->producer++], ptr)       //recycle last page to pool \t\t\t\tpage_pool_release \t\t\t\t  page_pool_scrub \t\t\t\t    page_pool_empty_ring \t\t\t\t      ptr_ring_consume \t\t\t\t      page_pool_return_page  //release all page \t\t\t\t  __page_pool_destroy \t\t\t\t     free_percpu(pool->recycle_stats); \t\t\t\t     free(pool) //free       spin_unlock(&r->producer_lock); //pool->ring uaf read   recycle_stat_inc(pool, ring);  page_pool can be free while page pool recycle the last page in ring. Add producer-lock barrier to page_pool_release to prevent the page pool from being free before all pages have been recycled.  recycle_stat_inc() is empty when CONFIG_PAGE_POOL_STATS is not enabled, which will trigger Wempty-body build warning. Add definition for pool stat macro to fix warning.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-07-03 09:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2022-49635",
                        "url": "https://ubuntu.com/security/CVE-2022-49635",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915/selftests: fix subtraction overflow bug  On some machines hole_end can be small enough to cause subtraction overflow. On the other side (addr + 2 * min_alignment) can overflow in case of mock tests. This patch should handle both cases.  (cherry picked from commit ab3edc679c552a466e4bf0b11af3666008bd65a2)",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-26 07:01:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-22111",
                        "url": "https://ubuntu.com/security/CVE-2025-22111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: Remove RTNL dance for SIOCBRADDIF and SIOCBRDELIF.  SIOCBRDELIF is passed to dev_ioctl() first and later forwarded to br_ioctl_call(), which causes unnecessary RTNL dance and the splat below [0] under RTNL pressure.  Let's say Thread A is trying to detach a device from a bridge and Thread B is trying to remove the bridge.  In dev_ioctl(), Thread A bumps the bridge device's refcnt by netdev_hold() and releases RTNL because the following br_ioctl_call() also re-acquires RTNL.  In the race window, Thread B could acquire RTNL and try to remove the bridge device.  Then, rtnl_unlock() by Thread B will release RTNL and wait for netdev_put() by Thread A.  Thread A, however, must hold RTNL after the unlock in dev_ifsioc(), which may take long under RTNL pressure, resulting in the splat by Thread B.    Thread A (SIOCBRDELIF)           Thread B (SIOCBRDELBR)   ----------------------           ----------------------   sock_ioctl                       sock_ioctl   `- sock_do_ioctl                 `- br_ioctl_call      `- dev_ioctl                     `- br_ioctl_stub         |- rtnl_lock                     |         |- dev_ifsioc                    '         '  |- dev = __dev_get_by_name(...)            |- netdev_hold(dev, ...)      .        /   |- rtnl_unlock  ------.       |        |   |- br_ioctl_call       `--->  |- rtnl_lock   Race |   |  `- br_ioctl_stub           |- br_del_bridge   Window   |     |                       |  |- dev = __dev_get_by_name(...)        |   |     |  May take long        |  `- br_dev_delete(dev, ...)        |   |     |  under RTNL pressure  |     `- unregister_netdevice_queue(dev, ...)        |   |     |               |       `- rtnl_unlock        \\   |     |- rtnl_lock  <-'          `- netdev_run_todo            |     |- ...                        `- netdev_run_todo            |     `- rtnl_unlock                   |- __rtnl_unlock            |                                      |- netdev_wait_allrefs_any            |- netdev_put(dev, ...)  <----------------'                                                 Wait refcnt decrement                                                 and log splat below  To avoid blocking SIOCBRDELBR unnecessarily, let's not call dev_ioctl() for SIOCBRADDIF and SIOCBRDELIF.  In the dev_ioctl() path, we do the following:    1. Copy struct ifreq by get_user_ifreq in sock_do_ioctl()   2. Check CAP_NET_ADMIN in dev_ioctl()   3. Call dev_load() in dev_ioctl()   4. Fetch the master dev from ifr.ifr_name in dev_ifsioc()  3. can be done by request_module() in br_ioctl_call(), so we move 1., 2., and 4. to br_ioctl_stub().  Note that 2. is also checked later in add_del_if(), but it's better performed before RTNL.  SIOCBRADDIF and SIOCBRDELIF have been processed in dev_ioctl() since the pre-git era, and there seems to be no specific reason to process them there.  [0]: unregister_netdevice: waiting for wpan3 to become free. Usage count = 2 ref_tracker: wpan3@ffff8880662d8608 has 1/1 users at      __netdev_tracker_alloc include/linux/netdevice.h:4282 [inline]      netdev_hold include/linux/netdevice.h:4311 [inline]      dev_ifsioc+0xc6a/0x1160 net/core/dev_ioctl.c:624      dev_ioctl+0x255/0x10c0 net/core/dev_ioctl.c:826      sock_do_ioctl+0x1ca/0x260 net/socket.c:1213      sock_ioctl+0x23a/0x6c0 net/socket.c:1318      vfs_ioctl fs/ioctl.c:51 [inline]      __do_sys_ioctl fs/ioctl.c:906 [inline]      __se_sys_ioctl fs/ioctl.c:892 [inline]      __x64_sys_ioctl+0x1a4/0x210 fs/ioctl.c:892      do_syscall_x64 arch/x86/entry/common.c:52 [inline]      do_syscall_64+0xcb/0x250 arch/x86/entry/common.c:83      entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71127",
                        "url": "https://ubuntu.com/security/CVE-2025-71127",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: mac80211: Discard Beacon frames to non-broadcast address  Beacon frames are required to be sent to the broadcast address, see IEEE Std 802.11-2020, 11.1.3.1 (\"The Address 1 field of the Beacon .. frame shall be set to the broadcast address\"). A unicast Beacon frame might be used as a targeted attack to get one of the associated STAs to do something (e.g., using CSA to move it to another channel). As such, it is better have strict filtering for this on the received side and discard all Beacon frames that are sent to an unexpected address.  This is even more important for cases where beacon protection is used. The current implementation in mac80211 is correctly discarding unicast Beacon frames if the Protected Frame bit in the Frame Control field is set to 0. However, if that bit is set to 1, the logic used for checking for configured BIGTK(s) does not actually work. If the driver does not have logic for dropping unicast Beacon frames with Protected Frame bit 1, these frames would be accepted in mac80211 processing as valid Beacon frames even though they are not protected. This would allow beacon protection to be bypassed. While the logic for checking beacon protection could be extended to cover this corner case, a more generic check for discard all Beacon frames based on A1=unicast address covers this without needing additional changes.  Address all these issues by dropping received Beacon frames if they are sent to a non-broadcast address.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71081",
                        "url": "https://ubuntu.com/security/CVE-2025-71081",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: stm32: sai: fix OF node leak on probe  The reference taken to the sync provider OF node when probing the platform device is currently only dropped if the set_sync() callback fails during DAI probe.  Make sure to drop the reference on platform probe failures (e.g. probe deferral) and on driver unbind.  This also avoids a potential use-after-free in case the DAI is ever reprobed without first rebinding the platform driver.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71078",
                        "url": "https://ubuntu.com/security/CVE-2025-71078",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  powerpc/64s/slb: Fix SLB multihit issue during SLB preload  On systems using the hash MMU, there is a software SLB preload cache that mirrors the entries loaded into the hardware SLB buffer. This preload cache is subject to periodic eviction — typically after every 256 context switches — to remove old entry.  To optimize performance, the kernel skips switch_mmu_context() in switch_mm_irqs_off() when the prev and next mm_struct are the same. However, on hash MMU systems, this can lead to inconsistencies between the hardware SLB and the software preload cache.  If an SLB entry for a process is evicted from the software cache on one CPU, and the same process later runs on another CPU without executing switch_mmu_context(), the hardware SLB may retain stale entries. If the kernel then attempts to reload that entry, it can trigger an SLB multi-hit error.  The following timeline shows how stale SLB entries are created and can cause a multi-hit error when a process moves between CPUs without a MMU context switch.  CPU 0                                   CPU 1 -----                                    ----- Process P exec                                    swapper/1  load_elf_binary   begin_new_exc     activate_mm      switch_mm_irqs_off       switch_mmu_context        switch_slb        /*         * This invalidates all         * the entries in the HW         * and setup the new HW         * SLB entries as per the         * preload cache.         */ context_switch sched_migrate_task migrates process P to cpu-1  Process swapper/0                       context switch (to process P) (uses mm_struct of Process P)           switch_mm_irqs_off()                                          switch_slb                                            load_slb++                                             /*                                             * load_slb becomes 0 here                                             * and we evict an entry from                                             * the preload cache with                                             * preload_age(). We still                                             * keep HW SLB and preload                                             * cache in sync, that is                                             * because all HW SLB entries                                             * anyways gets evicted in                                             * switch_slb during SLBIA.                                             * We then only add those                                             * entries back in HW SLB,                                             * which are currently                                             * present in preload_cache                                             * (after eviction).                                             */                                         load_elf_binary continues...                                          setup_new_exec()                                           slb_setup_new_exec()                                          sched_switch event                                         sched_migrate_task migrates                                         process P to cpu-0  context_switch from swapper/0 to Process P  switch_mm_irqs_off()   /*    * Since both prev and next mm struct are same we don't call    * switch_mmu_context(). This will cause the HW SLB and SW preload    * cache to go out of sync in preload_new_slb_context. Because there    * was an SLB entry which was evicted from both HW and preload cache    * on cpu-1. Now later in preload_new_slb_context(), when we will try    * to add the same preload entry again, we will add this to the SW    * preload cache and then will add it to the HW SLB. Since on cpu-0    * this entry was never invalidated, hence adding this entry to the HW    * SLB will cause a SLB multi-hit error.    */ load_elf_binary cont ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68803",
                        "url": "https://ubuntu.com/security/CVE-2025-68803",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: NFSv4 file creation neglects setting ACL  An NFSv4 client that sets an ACL with a named principal during file creation retrieves the ACL afterwards, and finds that it is only a default ACL (based on the mode bits) and not the ACL that was requested during file creation. This violates RFC 8881 section 6.4.1.3: \"the ACL attribute is set as given\".  The issue occurs in nfsd_create_setattr(), which calls nfsd_attrs_valid() to determine whether to call nfsd_setattr(). However, nfsd_attrs_valid() checks only for iattr changes and security labels, but not POSIX ACLs. When only an ACL is present, the function returns false, nfsd_setattr() is skipped, and the POSIX ACL is never applied to the inode.  Subsequently, when the client retrieves the ACL, the server finds no POSIX ACL on the inode and returns one generated from the file's mode bits rather than returning the originally-specified ACL.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71120",
                        "url": "https://ubuntu.com/security/CVE-2025-71120",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in gss_read_proxy_verf  A zero length gss_token results in pages == 0 and in_token->pages[0] is NULL. The code unconditionally evaluates page_address(in_token->pages[0]) for the initial memcpy, which can dereference NULL even when the copy length is 0. Guard the first memcpy so it only runs when length > 0.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71113",
                        "url": "https://ubuntu.com/security/CVE-2025-71113",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - zero initialize memory allocated via sock_kmalloc  Several crypto user API contexts and requests allocated with sock_kmalloc() were left uninitialized, relying on callers to set fields explicitly. This resulted in the use of uninitialized data in certain error paths or when new fields are added in the future.  The ACVP patches also contain two user-space interface files: algif_kpp.c and algif_akcipher.c. These too rely on proper initialization of their context structures.  A particular issue has been observed with the newly added 'inflight' variable introduced in af_alg_ctx by commit:    67b164a871af (\"crypto: af_alg - Disallow multiple in-flight AIO requests\")  Because the context is not memset to zero after allocation, the inflight variable has contained garbage values. As a result, af_alg_alloc_areq() has incorrectly returned -EBUSY randomly when the garbage value was interpreted as true:    https://github.com/gregkh/linux/blame/master/crypto/af_alg.c#L1209  The check directly tests ctx->inflight without explicitly comparing against true/false. Since inflight is only ever set to true or false later, an uninitialized value has triggered -EBUSY failures. Zero-initializing memory allocated with sock_kmalloc() ensures inflight and other fields start in a known state, removing random issues caused by uninitialized data.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71068",
                        "url": "https://ubuntu.com/security/CVE-2025-71068",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  svcrdma: bound check rq_pages index in inline path  svc_rdma_copy_inline_range indexed rqstp->rq_pages[rc_curpage] without verifying rc_curpage stays within the allocated page array. Add guards before the first use and after advancing to a new page.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68821",
                        "url": "https://ubuntu.com/security/CVE-2025-68821",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fuse: fix readahead reclaim deadlock  Commit e26ee4efbc79 (\"fuse: allocate ff->release_args only if release is needed\") skips allocating ff->release_args if the server does not implement open. However in doing so, fuse_prepare_release() now skips grabbing the reference on the inode, which makes it possible for an inode to be evicted from the dcache while there are inflight readahead requests. This causes a deadlock if the server triggers reclaim while servicing the readahead request and reclaim attempts to evict the inode of the file being read ahead. Since the folio is locked during readahead, when reclaim evicts the fuse inode and fuse_evict_inode() attempts to remove all folios associated with the inode from the page cache (truncate_inode_pages_range()), reclaim will block forever waiting for the lock since readahead cannot relinquish the lock because it is itself blocked in reclaim:  >>> stack_trace(1504735)  folio_wait_bit_common (mm/filemap.c:1308:4)  folio_lock (./include/linux/pagemap.h:1052:3)  truncate_inode_pages_range (mm/truncate.c:336:10)  fuse_evict_inode (fs/fuse/inode.c:161:2)  evict (fs/inode.c:704:3)  dentry_unlink_inode (fs/dcache.c:412:3)  __dentry_kill (fs/dcache.c:615:3)  shrink_kill (fs/dcache.c:1060:12)  shrink_dentry_list (fs/dcache.c:1087:3)  prune_dcache_sb (fs/dcache.c:1168:2)  super_cache_scan (fs/super.c:221:10)  do_shrink_slab (mm/shrinker.c:435:9)  shrink_slab (mm/shrinker.c:626:10)  shrink_node (mm/vmscan.c:5951:2)  shrink_zones (mm/vmscan.c:6195:3)  do_try_to_free_pages (mm/vmscan.c:6257:3)  do_swap_page (mm/memory.c:4136:11)  handle_pte_fault (mm/memory.c:5562:10)  handle_mm_fault (mm/memory.c:5870:9)  do_user_addr_fault (arch/x86/mm/fault.c:1338:10)  handle_page_fault (arch/x86/mm/fault.c:1481:3)  exc_page_fault (arch/x86/mm/fault.c:1539:2)  asm_exc_page_fault+0x22/0x27  Fix this deadlock by allocating ff->release_args and grabbing the reference on the inode when preparing the file for release even if the server does not implement open. The inode reference will be dropped when the last reference on the fuse file is dropped (see fuse_file_put() -> fuse_release_end()).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68796",
                        "url": "https://ubuntu.com/security/CVE-2025-68796",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid updating zero-sized extent in extent cache  As syzbot reported:  F2FS-fs (loop0): __update_extent_tree_range: extent len is zero, type: 0, extent [0, 0, 0], age [0, 0] ------------[ cut here ]------------ kernel BUG at fs/f2fs/extent_cache.c:678! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 0 UID: 0 PID: 5336 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:__update_extent_tree_range+0x13bc/0x1500 fs/f2fs/extent_cache.c:678 Call Trace:  <TASK>  f2fs_update_read_extent_cache_range+0x192/0x3e0 fs/f2fs/extent_cache.c:1085  f2fs_do_zero_range fs/f2fs/file.c:1657 [inline]  f2fs_zero_range+0x10c1/0x1580 fs/f2fs/file.c:1737  f2fs_fallocate+0x583/0x990 fs/f2fs/file.c:2030  vfs_fallocate+0x669/0x7e0 fs/open.c:342  ioctl_preallocate fs/ioctl.c:289 [inline]  file_ioctl+0x611/0x780 fs/ioctl.c:-1  do_vfs_ioctl+0xb33/0x1430 fs/ioctl.c:576  __do_sys_ioctl fs/ioctl.c:595 [inline]  __se_sys_ioctl+0x82/0x170 fs/ioctl.c:583  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f07bc58eec9  In error path of f2fs_zero_range(), it may add a zero-sized extent into extent cache, it should be avoided.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71105",
                        "url": "https://ubuntu.com/security/CVE-2025-71105",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: use global inline_xattr_slab instead of per-sb slab cache  As Hong Yun reported in mailing list:  loop7: detected capacity change from 0 to 131072 ------------[ cut here ]------------ kmem_cache of name 'f2fs_xattr_entry-7:7' already exists WARNING: CPU: 0 PID: 24426 at mm/slab_common.c:110 kmem_cache_sanity_check mm/slab_common.c:109 [inline] WARNING: CPU: 0 PID: 24426 at mm/slab_common.c:110 __kmem_cache_create_args+0xa6/0x320 mm/slab_common.c:307 CPU: 0 UID: 0 PID: 24426 Comm: syz.7.1370 Not tainted 6.17.0-rc4 #1 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 RIP: 0010:kmem_cache_sanity_check mm/slab_common.c:109 [inline] RIP: 0010:__kmem_cache_create_args+0xa6/0x320 mm/slab_common.c:307 Call Trace:  __kmem_cache_create include/linux/slab.h:353 [inline]  f2fs_kmem_cache_create fs/f2fs/f2fs.h:2943 [inline]  f2fs_init_xattr_caches+0xa5/0xe0 fs/f2fs/xattr.c:843  f2fs_fill_super+0x1645/0x2620 fs/f2fs/super.c:4918  get_tree_bdev_flags+0x1fb/0x260 fs/super.c:1692  vfs_get_tree+0x43/0x140 fs/super.c:1815  do_new_mount+0x201/0x550 fs/namespace.c:3808  do_mount fs/namespace.c:4136 [inline]  __do_sys_mount fs/namespace.c:4347 [inline]  __se_sys_mount+0x298/0x2f0 fs/namespace.c:4324  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0x8e/0x3a0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x76/0x7e  The bug can be reproduced w/ below scripts: - mount /dev/vdb /mnt1 - mount /dev/vdc /mnt2 - umount /mnt1 - mounnt /dev/vdb /mnt1  The reason is if we created two slab caches, named f2fs_xattr_entry-7:3 and f2fs_xattr_entry-7:7, and they have the same slab size. Actually, slab system will only create one slab cache core structure which has slab name of \"f2fs_xattr_entry-7:3\", and two slab caches share the same structure and cache address.  So, if we destroy f2fs_xattr_entry-7:3 cache w/ cache address, it will decrease reference count of slab cache, rather than release slab cache entirely, since there is one more user has referenced the cache.  Then, if we try to create slab cache w/ name \"f2fs_xattr_entry-7:3\" again, slab system will find that there is existed cache which has the same name and trigger the warning.  Let's changes to use global inline_xattr_slab instead of per-sb slab cache for fixing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68344",
                        "url": "https://ubuntu.com/security/CVE-2025-68344",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: wavefront: Fix integer overflow in sample size validation  The wavefront_send_sample() function has an integer overflow issue when validating sample size. The header->size field is u32 but gets cast to int for comparison with dev->freemem  Fix by using unsigned comparison to avoid integer overflow.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71077",
                        "url": "https://ubuntu.com/security/CVE-2025-71077",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tpm: Cap the number of PCR banks  tpm2_get_pcr_allocation() does not cap any upper limit for the number of banks. Cap the limit to eight banks so that out of bounds values coming from external I/O cause on only limited harm.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68282",
                        "url": "https://ubuntu.com/security/CVE-2025-68282",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: udc: fix use-after-free in usb_gadget_state_work  A race condition during gadget teardown can lead to a use-after-free in usb_gadget_state_work(), as reported by KASAN:    BUG: KASAN: invalid-access in sysfs_notify+0x2c/0xd0   Workqueue: events usb_gadget_state_work  The fundamental race occurs because a concurrent event (e.g., an interrupt) can call usb_gadget_set_state() and schedule gadget->work at any time during the cleanup process in usb_del_gadget().  Commit 399a45e5237c (\"usb: gadget: core: flush gadget workqueue after device removal\") attempted to fix this by moving flush_work() to after device_del(). However, this does not fully solve the race, as a new work item can still be scheduled *after* flush_work() completes but before the gadget's memory is freed, leading to the same use-after-free.  This patch fixes the race condition robustly by introducing a 'teardown' flag and a 'state_lock' spinlock to the usb_gadget struct. The flag is set during cleanup in usb_del_gadget() *before* calling flush_work() to prevent any new work from being scheduled once cleanup has commenced. The scheduling site, usb_gadget_set_state(), now checks this flag under the lock before queueing the work, thus safely closing the race window.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-22022",
                        "url": "https://ubuntu.com/security/CVE-2025-22022",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: xhci: Apply the link chain quirk on NEC isoc endpoints  Two clearly different specimens of NEC uPD720200 (one with start/stop bug, one without) were seen to cause IOMMU faults after some Missed Service Errors. Faulting address is immediately after a transfer ring segment and patched dynamic debug messages revealed that the MSE was received when waiting for a TD near the end of that segment:  [ 1.041954] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ffa08fe0 [ 1.042120] xhci_hcd: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0005 address=0xffa09000 flags=0x0000] [ 1.042146] xhci_hcd: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0005 address=0xffa09040 flags=0x0000]  It gets even funnier if the next page is a ring segment accessible to the HC. Below, it reports MSE in segment at ff1e8000, plows through a zero-filled page at ff1e9000 and starts reporting events for TRBs in page at ff1ea000 every microframe, instead of jumping to seg ff1e6000.  [ 7.041671] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ff1e8fe0 [ 7.041999] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ff1e8fe0 [ 7.042011] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042028] xhci_hcd: All TDs skipped for slot 1 ep 2. Clear skip flag. [ 7.042134] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042138] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 31 [ 7.042144] xhci_hcd: Looking for event-dma 00000000ff1ea040 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.042259] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042262] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 31 [ 7.042266] xhci_hcd: Looking for event-dma 00000000ff1ea050 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820  At some point completion events change from Isoch Buffer Overrun to Short Packet and the HC finally finds cycle bit mismatch in ff1ec000.  [ 7.098130] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 [ 7.098132] xhci_hcd: Looking for event-dma 00000000ff1ecc50 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.098254] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 [ 7.098256] xhci_hcd: Looking for event-dma 00000000ff1ecc60 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.098379] xhci_hcd: Overrun event on slot 1 ep 2  It's possible that data from the isochronous device were written to random buffers of pending TDs on other endpoints (either IN or OUT), other devices or even other HCs in the same IOMMU domain.  Lastly, an error from a different USB device on another HC. Was it caused by the above? I don't know, but it may have been. The disk was working without any other issues and generated PCIe traffic to starve the NEC of upstream BW and trigger those MSEs. The two HCs shared one x1 slot by means of a commercial \"PCIe splitter\" board.  [ 7.162604] usb 10-2: reset SuperSpeed USB device number 3 using xhci_hcd [ 7.178990] sd 9:0:0:0: [sdb] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x07 driverbyte=DRIVER_OK cmd_age=0s [ 7.179001] sd 9:0:0:0: [sdb] tag#0 CDB: opcode=0x28 28 00 04 02 ae 00 00 02 00 00 [ 7.179004] I/O error, dev sdb, sector 67284480 op 0x0:(READ) flags 0x80700 phys_seg 5 prio class 0  Fortunately, it appears that this ridiculous bug is avoided by setting the chain bit of Link TRBs on isochronous rings. Other ancient HCs are known which also expect the bit to be set and they ignore Link TRBs if it's not. Reportedly, 0.95 spec guaranteed that the bit is set.  The bandwidth-starved NEC HC running a 32KB/uframe UVC endpoint reports tens of MSEs per second and runs into the bug within seconds. Chaining Link TRBs allows the same workload to run for many minutes, many times.  No ne ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40110",
                        "url": "https://ubuntu.com/security/CVE-2025-40110",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vmwgfx: Fix a null-ptr access in the cursor snooper  Check that the resource which is converted to a surface exists before trying to use the cursor snooper on it.  vmw_cmd_res_check allows explicit invalid (SVGA3D_INVALID_ID) identifiers because some svga commands accept SVGA3D_INVALID_ID to mean \"no surface\", unfortunately functions that accept the actual surfaces as objects might (and in case of the cursor snooper, do not) be able to handle null objects. Make sure that we validate not only the identifier (via the vmw_cmd_res_check) but also check that the actual resource exists before trying to do something with it.  Fixes unchecked null-ptr reference in the snooping code.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-12 02:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38022",
                        "url": "https://ubuntu.com/security/CVE-2025-38022",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/core: Fix \"KASAN: slab-use-after-free Read in ib_register_device\" problem  Call Trace:   __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:408 [inline]  print_report+0xc3/0x670 mm/kasan/report.c:521  kasan_report+0xe0/0x110 mm/kasan/report.c:634  strlen+0x93/0xa0 lib/string.c:420  __fortify_strlen include/linux/fortify-string.h:268 [inline]  get_kobj_path_length lib/kobject.c:118 [inline]  kobject_get_path+0x3f/0x2a0 lib/kobject.c:158  kobject_uevent_env+0x289/0x1870 lib/kobject_uevent.c:545  ib_register_device drivers/infiniband/core/device.c:1472 [inline]  ib_register_device+0x8cf/0xe00 drivers/infiniband/core/device.c:1393  rxe_register_device+0x275/0x320 drivers/infiniband/sw/rxe/rxe_verbs.c:1552  rxe_net_add+0x8e/0xe0 drivers/infiniband/sw/rxe/rxe_net.c:550  rxe_newlink+0x70/0x190 drivers/infiniband/sw/rxe/rxe.c:225  nldev_newlink+0x3a3/0x680 drivers/infiniband/core/nldev.c:1796  rdma_nl_rcv_msg+0x387/0x6e0 drivers/infiniband/core/netlink.c:195  rdma_nl_rcv_skb.constprop.0.isra.0+0x2e5/0x450  netlink_unicast_kernel net/netlink/af_netlink.c:1313 [inline]  netlink_unicast+0x53a/0x7f0 net/netlink/af_netlink.c:1339  netlink_sendmsg+0x8d1/0xdd0 net/netlink/af_netlink.c:1883  sock_sendmsg_nosec net/socket.c:712 [inline]  __sock_sendmsg net/socket.c:727 [inline]  ____sys_sendmsg+0xa95/0xc70 net/socket.c:2566  ___sys_sendmsg+0x134/0x1d0 net/socket.c:2620  __sys_sendmsg+0x16d/0x220 net/socket.c:2652  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xcd/0x260 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  This problem is similar to the problem that the commit 1d6a9e7449e2 (\"RDMA/core: Fix use-after-free when rename device name\") fixes.  The root cause is: the function ib_device_rename() renames the name with lock. But in the function kobject_uevent(), this name is accessed without lock protection at the same time.  The solution is to add the lock protection when this name is accessed in the function kobject_uevent().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-06-18 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71083",
                        "url": "https://ubuntu.com/security/CVE-2025-71083",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/ttm: Avoid NULL pointer deref for evicted BOs  It is possible for a BO to exist that is not currently associated with a resource, e.g. because it has been evicted.  When devcoredump tries to read the contents of all BOs for dumping, we need to expect this as well -- in this case, ENODATA is recorded instead of the buffer contents.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71079",
                        "url": "https://ubuntu.com/security/CVE-2025-71079",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: nfc: fix deadlock between nfc_unregister_device and rfkill_fop_write  A deadlock can occur between nfc_unregister_device() and rfkill_fop_write() due to lock ordering inversion between device_lock and rfkill_global_mutex.  The problematic lock order is:  Thread A (rfkill_fop_write):   rfkill_fop_write()     mutex_lock(&rfkill_global_mutex)       rfkill_set_block()         nfc_rfkill_set_block()           nfc_dev_down()             device_lock(&dev->dev)    <- waits for device_lock  Thread B (nfc_unregister_device):   nfc_unregister_device()     device_lock(&dev->dev)       rfkill_unregister()         mutex_lock(&rfkill_global_mutex)  <- waits for rfkill_global_mutex  This creates a classic ABBA deadlock scenario.  Fix this by moving rfkill_unregister() and rfkill_destroy() outside the device_lock critical section. Store the rfkill pointer in a local variable before releasing the lock, then call rfkill_unregister() after releasing device_lock.  This change is safe because rfkill_fop_write() holds rfkill_global_mutex while calling the rfkill callbacks, and rfkill_unregister() also acquires rfkill_global_mutex before cleanup. Therefore, rfkill_unregister() will wait for any ongoing callback to complete before proceeding, and device_del() is only called after rfkill_unregister() returns, preventing any use-after-free.  The similar lock ordering in nfc_register_device() (device_lock -> rfkill_global_mutex via rfkill_register) is safe because during registration the device is not yet in rfkill_list, so no concurrent rfkill operations can occur on this device.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71093",
                        "url": "https://ubuntu.com/security/CVE-2025-71093",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  e1000: fix OOB in e1000_tbi_should_accept()  In e1000_tbi_should_accept() we read the last byte of the frame via 'data[length - 1]' to evaluate the TBI workaround. If the descriptor- reported length is zero or larger than the actual RX buffer size, this read goes out of bounds and can hit unrelated slab objects. The issue is observed from the NAPI receive path (e1000_clean_rx_irq):  ================================================================== BUG: KASAN: slab-out-of-bounds in e1000_tbi_should_accept+0x610/0x790 Read of size 1 at addr ffff888014114e54 by task sshd/363  CPU: 0 PID: 363 Comm: sshd Not tainted 5.18.0-rc1 #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014 Call Trace:  <IRQ>  dump_stack_lvl+0x5a/0x74  print_address_description+0x7b/0x440  print_report+0x101/0x200  kasan_report+0xc1/0xf0  e1000_tbi_should_accept+0x610/0x790  e1000_clean_rx_irq+0xa8c/0x1110  e1000_clean+0xde2/0x3c10  __napi_poll+0x98/0x380  net_rx_action+0x491/0xa20  __do_softirq+0x2c9/0x61d  do_softirq+0xd1/0x120  </IRQ>  <TASK>  __local_bh_enable_ip+0xfe/0x130  ip_finish_output2+0x7d5/0xb00  __ip_queue_xmit+0xe24/0x1ab0  __tcp_transmit_skb+0x1bcb/0x3340  tcp_write_xmit+0x175d/0x6bd0  __tcp_push_pending_frames+0x7b/0x280  tcp_sendmsg_locked+0x2e4f/0x32d0  tcp_sendmsg+0x24/0x40  sock_write_iter+0x322/0x430  vfs_write+0x56c/0xa60  ksys_write+0xd1/0x190  do_syscall_64+0x43/0x90  entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f511b476b10 Code: 73 01 c3 48 8b 0d 88 d3 2b 00 f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 83 3d f9 2b 2c 00 00 75 10 b8 01 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 31 c3 48 83 ec 08 e8 8e 9b 01 00 48 89 04 24 RSP: 002b:00007ffc9211d4e8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 0000000000004024 RCX: 00007f511b476b10 RDX: 0000000000004024 RSI: 0000559a9385962c RDI: 0000000000000003 RBP: 0000559a9383a400 R08: fffffffffffffff0 R09: 0000000000004f00 R10: 0000000000000070 R11: 0000000000000246 R12: 0000000000000000 R13: 00007ffc9211d57f R14: 0000559a9347bde7 R15: 0000000000000003  </TASK> Allocated by task 1:  __kasan_krealloc+0x131/0x1c0  krealloc+0x90/0xc0  add_sysfs_param+0xcb/0x8a0  kernel_add_sysfs_param+0x81/0xd4  param_sysfs_builtin+0x138/0x1a6  param_sysfs_init+0x57/0x5b  do_one_initcall+0x104/0x250  do_initcall_level+0x102/0x132  do_initcalls+0x46/0x74  kernel_init_freeable+0x28f/0x393  kernel_init+0x14/0x1a0  ret_from_fork+0x22/0x30 The buggy address belongs to the object at ffff888014114000  which belongs to the cache kmalloc-2k of size 2048 The buggy address is located 1620 bytes to the right of  2048-byte region [ffff888014114000, ffff888014114800] The buggy address belongs to the physical page: page:ffffea0000504400 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x14110 head:ffffea0000504400 order:3 compound_mapcount:0 compound_pincount:0 flags: 0x100000000010200(slab|head|node=0|zone=1) raw: 0100000000010200 0000000000000000 dead000000000001 ffff888013442000 raw: 0000000000000000 0000000000080008 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected ==================================================================  This happens because the TBI check unconditionally dereferences the last byte without validating the reported length first:  \tu8 last_byte = *(data + length - 1);  Fix by rejecting the frame early if the length is zero, or if it exceeds adapter->rx_buffer_len. This preserves the TBI workaround semantics for valid frames and prevents touching memory beyond the RX buffer.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71084",
                        "url": "https://ubuntu.com/security/CVE-2025-71084",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/cm: Fix leaking the multicast GID table reference  If the CM ID is destroyed while the CM event for multicast creating is still queued the cancel_work_sync() will prevent the work from running which also prevents destroying the ah_attr. This leaks a refcount and triggers a WARN:     GID entry ref leak for dev syz1 index 2 ref=573    WARNING: CPU: 1 PID: 655 at drivers/infiniband/core/cache.c:809 release_gid_table drivers/infiniband/core/cache.c:806 [inline]    WARNING: CPU: 1 PID: 655 at drivers/infiniband/core/cache.c:809 gid_table_release_one+0x284/0x3cc drivers/infiniband/core/cache.c:886  Destroy the ah_attr after canceling the work, it is safe to call this twice.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71096",
                        "url": "https://ubuntu.com/security/CVE-2025-71096",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly  The netlink response for RDMA_NL_LS_OP_IP_RESOLVE should always have a LS_NLA_TYPE_DGID attribute, it is invalid if it does not.  Use the nl parsing logic properly and call nla_parse_deprecated() to fill the nlattrs array and then directly index that array to get the data for the DGID. Just fail if it is NULL.  Remove the for loop searching for the nla, and squash the validation and parsing into one function.  Fixes an uninitialized read from the stack triggered by userspace if it does not provide the DGID to a kernel initiated RDMA_NL_LS_OP_IP_RESOLVE query.      BUG: KMSAN: uninit-value in hex_byte_pack include/linux/hex.h:13 [inline]     BUG: KMSAN: uninit-value in ip6_string+0xef4/0x13a0 lib/vsprintf.c:1490      hex_byte_pack include/linux/hex.h:13 [inline]      ip6_string+0xef4/0x13a0 lib/vsprintf.c:1490      ip6_addr_string+0x18a/0x3e0 lib/vsprintf.c:1509      ip_addr_string+0x245/0xee0 lib/vsprintf.c:1633      pointer+0xc09/0x1bd0 lib/vsprintf.c:2542      vsnprintf+0xf8a/0x1bd0 lib/vsprintf.c:2930      vprintk_store+0x3ae/0x1530 kernel/printk/printk.c:2279      vprintk_emit+0x307/0xcd0 kernel/printk/printk.c:2426      vprintk_default+0x3f/0x50 kernel/printk/printk.c:2465      vprintk+0x36/0x50 kernel/printk/printk_safe.c:82      _printk+0x17e/0x1b0 kernel/printk/printk.c:2475      ib_nl_process_good_ip_rsep drivers/infiniband/core/addr.c:128 [inline]      ib_nl_handle_ip_res_resp+0x963/0x9d0 drivers/infiniband/core/addr.c:141      rdma_nl_rcv_msg drivers/infiniband/core/netlink.c:-1 [inline]      rdma_nl_rcv_skb drivers/infiniband/core/netlink.c:239 [inline]      rdma_nl_rcv+0xefa/0x11c0 drivers/infiniband/core/netlink.c:259      netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]      netlink_unicast+0xf04/0x12b0 net/netlink/af_netlink.c:1346      netlink_sendmsg+0x10b3/0x1250 net/netlink/af_netlink.c:1896      sock_sendmsg_nosec net/socket.c:714 [inline]      __sock_sendmsg+0x333/0x3d0 net/socket.c:729      ____sys_sendmsg+0x7e0/0xd80 net/socket.c:2617      ___sys_sendmsg+0x271/0x3b0 net/socket.c:2671      __sys_sendmsg+0x1aa/0x300 net/socket.c:2703      __compat_sys_sendmsg net/compat.c:346 [inline]      __do_compat_sys_sendmsg net/compat.c:353 [inline]      __se_compat_sys_sendmsg net/compat.c:350 [inline]      __ia32_compat_sys_sendmsg+0xa4/0x100 net/compat.c:350      ia32_sys_call+0x3f6c/0x4310 arch/x86/include/generated/asm/syscalls_32.h:371      do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]      __do_fast_syscall_32+0xb0/0x150 arch/x86/entry/syscall_32.c:306      do_fast_syscall_32+0x38/0x80 arch/x86/entry/syscall_32.c:331      do_SYSENTER_32+0x1f/0x30 arch/x86/entry/syscall_32.c:3",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71136",
                        "url": "https://ubuntu.com/security/CVE-2025-71136",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: adv7842: Avoid possible out-of-bounds array accesses in adv7842_cp_log_status()  It's possible for cp_read() and hdmi_read() to return -EIO. Those values are further used as indexes for accessing arrays.  Fix that by checking return values where it's needed.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71133",
                        "url": "https://ubuntu.com/security/CVE-2025-71133",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/irdma: avoid invalid read in irdma_net_event  irdma_net_event() should not dereference anything from \"neigh\" (alias \"ptr\") until it has checked that the event is NETEVENT_NEIGH_UPDATE. Other events come with different structures pointed to by \"ptr\" and they may be smaller than struct neighbour.  Move the read of neigh->dev under the NETEVENT_NEIGH_UPDATE case.  The bug is mostly harmless, but it triggers KASAN on debug kernels:   BUG: KASAN: stack-out-of-bounds in irdma_net_event+0x32e/0x3b0 [irdma]  Read of size 8 at addr ffffc900075e07f0 by task kworker/27:2/542554   CPU: 27 PID: 542554 Comm: kworker/27:2 Kdump: loaded Not tainted 5.14.0-630.el9.x86_64+debug #1  Hardware name: [...]  Workqueue: events rt6_probe_deferred  Call Trace:   <IRQ>   dump_stack_lvl+0x60/0xb0   print_address_description.constprop.0+0x2c/0x3f0   print_report+0xb4/0x270   kasan_report+0x92/0xc0   irdma_net_event+0x32e/0x3b0 [irdma]   notifier_call_chain+0x9e/0x180   atomic_notifier_call_chain+0x5c/0x110   rt6_do_redirect+0xb91/0x1080   tcp_v6_err+0xe9b/0x13e0   icmpv6_notify+0x2b2/0x630   ndisc_redirect_rcv+0x328/0x530   icmpv6_rcv+0xc16/0x1360   ip6_protocol_deliver_rcu+0xb84/0x12e0   ip6_input_finish+0x117/0x240   ip6_input+0xc4/0x370   ipv6_rcv+0x420/0x7d0   __netif_receive_skb_one_core+0x118/0x1b0   process_backlog+0xd1/0x5d0   __napi_poll.constprop.0+0xa3/0x440   net_rx_action+0x78a/0xba0   handle_softirqs+0x2d4/0x9c0   do_softirq+0xad/0xe0   </IRQ>",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71086",
                        "url": "https://ubuntu.com/security/CVE-2025-71086",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: rose: fix invalid array index in rose_kill_by_device()  rose_kill_by_device() collects sockets into a local array[] and then iterates over them to disconnect sockets bound to a device being brought down.  The loop mistakenly indexes array[cnt] instead of array[i]. For cnt < ARRAY_SIZE(array), this reads an uninitialized entry; for cnt == ARRAY_SIZE(array), it is an out-of-bounds read. Either case can lead to an invalid socket pointer dereference and also leaks references taken via sock_hold().  Fix the index to use i.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71097",
                        "url": "https://ubuntu.com/security/CVE-2025-71097",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: Fix reference count leak when using error routes with nexthop objects  When a nexthop object is deleted, it is marked as dead and then fib_table_flush() is called to flush all the routes that are using the dead nexthop.  The current logic in fib_table_flush() is to only flush error routes (e.g., blackhole) when it is called as part of network namespace dismantle (i.e., with flush_all=true). Therefore, error routes are not flushed when their nexthop object is deleted:   # ip link add name dummy1 up type dummy  # ip nexthop add id 1 dev dummy1  # ip route add 198.51.100.1/32 nhid 1  # ip route add blackhole 198.51.100.2/32 nhid 1  # ip nexthop del id 1  # ip route show  blackhole 198.51.100.2 nhid 1 dev dummy1  As such, they keep holding a reference on the nexthop object which in turn holds a reference on the nexthop device, resulting in a reference count leak:   # ip link del dev dummy1  [   70.516258] unregister_netdevice: waiting for dummy1 to become free. Usage count = 2  Fix by flushing error routes when their nexthop is marked as dead.  IPv6 does not suffer from this problem.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71085",
                        "url": "https://ubuntu.com/security/CVE-2025-71085",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()  There exists a kernel oops caused by a BUG_ON(nhead < 0) at net/core/skbuff.c:2232 in pskb_expand_head(). This bug is triggered as part of the calipso_skbuff_setattr() routine when skb_cow() is passed headroom > INT_MAX (i.e. (int)(skb_headroom(skb) + len_delta) < 0).  The root cause of the bug is due to an implicit integer cast in __skb_cow(). The check (headroom > skb_headroom(skb)) is meant to ensure that delta = headroom - skb_headroom(skb) is never negative, otherwise we will trigger a BUG_ON in pskb_expand_head(). However, if headroom > INT_MAX and delta <= -NET_SKB_PAD, the check passes, delta becomes negative, and pskb_expand_head() is passed a negative value for nhead.  Fix the trigger condition in calipso_skbuff_setattr(). Avoid passing \"negative\" headroom sizes to skb_cow() within calipso_skbuff_setattr() by only using skb_cow() to grow headroom.  PoC: \tUsing `netlabelctl` tool:          netlabelctl map del default         netlabelctl calipso add pass doi:7         netlabelctl map add default address:0::1/128 protocol:calipso,7          Then run the following PoC:          int fd = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);          // setup msghdr         int cmsg_size = 2;         int cmsg_len = 0x60;         struct msghdr msg;         struct sockaddr_in6 dest_addr;         struct cmsghdr * cmsg = (struct cmsghdr *) calloc(1,                         sizeof(struct cmsghdr) + cmsg_len);         msg.msg_name = &dest_addr;         msg.msg_namelen = sizeof(dest_addr);         msg.msg_iov = NULL;         msg.msg_iovlen = 0;         msg.msg_control = cmsg;         msg.msg_controllen = cmsg_len;         msg.msg_flags = 0;          // setup sockaddr         dest_addr.sin6_family = AF_INET6;         dest_addr.sin6_port = htons(31337);         dest_addr.sin6_flowinfo = htonl(31337);         dest_addr.sin6_addr = in6addr_loopback;         dest_addr.sin6_scope_id = 31337;          // setup cmsghdr         cmsg->cmsg_len = cmsg_len;         cmsg->cmsg_level = IPPROTO_IPV6;         cmsg->cmsg_type = IPV6_HOPOPTS;         char * hop_hdr = (char *)cmsg + sizeof(struct cmsghdr);         hop_hdr[1] = 0x9; //set hop size - (0x9 + 1) * 8 = 80          sendmsg(fd, &msg, 0);",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71137",
                        "url": "https://ubuntu.com/security/CVE-2025-71137",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  octeontx2-pf: fix \"UBSAN: shift-out-of-bounds error\"  This patch ensures that the RX ring size (rx_pending) is not set below the permitted length. This avoids UBSAN shift-out-of-bounds errors when users passes small or zero ring sizes via ethtool -G.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71094",
                        "url": "https://ubuntu.com/security/CVE-2025-71094",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: asix: validate PHY address before use  The ASIX driver reads the PHY address from the USB device via asix_read_phy_addr(). A malicious or faulty device can return an invalid address (>= PHY_MAX_ADDR), which causes a warning in mdiobus_get_phy():    addr 207 out of range   WARNING: drivers/net/phy/mdio_bus.c:76  Validate the PHY address in asix_read_phy_addr() and remove the now-redundant check in ax88172a.c.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71132",
                        "url": "https://ubuntu.com/security/CVE-2025-71132",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smc91x: fix broken irq-context in PREEMPT_RT  When smc91x.c is built with PREEMPT_RT, the following splat occurs in FVP_RevC:  [   13.055000] smc91x LNRO0003:00 eth0: link up, 10Mbps, half-duplex, lpa 0x0000 [   13.062137] BUG: workqueue leaked atomic, lock or RCU: kworker/2:1[106] [   13.062137]      preempt=0x00000000 lock=0->0 RCU=0->1 workfn=mld_ifc_work [   13.062266] C ** replaying previous printk message ** [   13.062266] CPU: 2 UID: 0 PID: 106 Comm: kworker/2:1 Not tainted 6.18.0-dirty #179 PREEMPT_{RT,(full)} [   13.062353] Hardware name:  , BIOS [   13.062382] Workqueue: mld mld_ifc_work [   13.062469] Call trace: [   13.062494]  show_stack+0x24/0x40 (C) [   13.062602]  __dump_stack+0x28/0x48 [   13.062710]  dump_stack_lvl+0x7c/0xb0 [   13.062818]  dump_stack+0x18/0x34 [   13.062926]  process_scheduled_works+0x294/0x450 [   13.063043]  worker_thread+0x260/0x3d8 [   13.063124]  kthread+0x1c4/0x228 [   13.063235]  ret_from_fork+0x10/0x20  This happens because smc_special_trylock() disables IRQs even on PREEMPT_RT, but smc_special_unlock() does not restore IRQs on PREEMPT_RT. The reason is that smc_special_unlock() calls spin_unlock_irqrestore(), and rcu_read_unlock_bh() in __dev_queue_xmit() cannot invoke rcu_read_unlock() through __local_bh_enable_ip() when current->softirq_disable_cnt becomes zero.  To address this issue, replace smc_special_trylock() with spin_trylock_irqsave().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71154",
                        "url": "https://ubuntu.com/security/CVE-2025-71154",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: rtl8150: fix memory leak on usb_submit_urb() failure  In async_set_registers(), when usb_submit_urb() fails, the allocated   async_req structure and URB are not freed, causing a memory leak.    The completion callback async_set_reg_cb() is responsible for freeing   these allocations, but it is only called after the URB is successfully   submitted and completes (successfully or with error). If submission   fails, the callback never runs and the memory is leaked.    Fix this by freeing both the URB and the request structure in the error   path when usb_submit_urb() fails.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71091",
                        "url": "https://ubuntu.com/security/CVE-2025-71091",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  team: fix check for port enabled in team_queue_override_port_prio_changed()  There has been a syzkaller bug reported recently with the following trace:  list_del corruption, ffff888058bea080->prev is LIST_POISON2 (dead000000000122) ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:59! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 3 UID: 0 PID: 21246 Comm: syz.0.2928 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:__list_del_entry_valid_or_report+0x13e/0x200 lib/list_debug.c:59 Code: 48 c7 c7 e0 71 f0 8b e8 30 08 ef fc 90 0f 0b 48 89 ef e8 a5 02 55 fd 48 89 ea 48 89 de 48 c7 c7 40 72 f0 8b e8 13 08 ef fc 90 <0f> 0b 48 89 ef e8 88 02 55 fd 48 89 ea 48 b8 00 00 00 00 00 fc ff RSP: 0018:ffffc9000d49f370 EFLAGS: 00010286 RAX: 000000000000004e RBX: ffff888058bea080 RCX: ffffc9002817d000 RDX: 0000000000000000 RSI: ffffffff819becc6 RDI: 0000000000000005 RBP: dead000000000122 R08: 0000000000000005 R09: 0000000000000000 R10: 0000000080000000 R11: 0000000000000001 R12: ffff888039e9c230 R13: ffff888058bea088 R14: ffff888058bea080 R15: ffff888055461480 FS:  00007fbbcfe6f6c0(0000) GS:ffff8880d6d0a000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000110c3afcb0 CR3: 00000000382c7000 CR4: 0000000000352ef0 Call Trace:  <TASK>  __list_del_entry_valid include/linux/list.h:132 [inline]  __list_del_entry include/linux/list.h:223 [inline]  list_del_rcu include/linux/rculist.h:178 [inline]  __team_queue_override_port_del drivers/net/team/team_core.c:826 [inline]  __team_queue_override_port_del drivers/net/team/team_core.c:821 [inline]  team_queue_override_port_prio_changed drivers/net/team/team_core.c:883 [inline]  team_priority_option_set+0x171/0x2f0 drivers/net/team/team_core.c:1534  team_option_set drivers/net/team/team_core.c:376 [inline]  team_nl_options_set_doit+0x8ae/0xe60 drivers/net/team/team_core.c:2653  genl_family_rcv_msg_doit+0x209/0x2f0 net/netlink/genetlink.c:1115  genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]  genl_rcv_msg+0x55c/0x800 net/netlink/genetlink.c:1210  netlink_rcv_skb+0x158/0x420 net/netlink/af_netlink.c:2552  genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219  netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]  netlink_unicast+0x5aa/0x870 net/netlink/af_netlink.c:1346  netlink_sendmsg+0x8c8/0xdd0 net/netlink/af_netlink.c:1896  sock_sendmsg_nosec net/socket.c:727 [inline]  __sock_sendmsg net/socket.c:742 [inline]  ____sys_sendmsg+0xa98/0xc70 net/socket.c:2630  ___sys_sendmsg+0x134/0x1d0 net/socket.c:2684  __sys_sendmsg+0x16d/0x220 net/socket.c:2716  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xcd/0xfa0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  The problem is in this flow: 1) Port is enabled, queue_id != 0, in qom_list 2) Port gets disabled         -> team_port_disable()         -> team_queue_override_port_del()         -> del (removed from list) 3) Port is disabled, queue_id != 0, not in any list 4) Priority changes         -> team_queue_override_port_prio_changed()         -> checks: port disabled && queue_id != 0         -> calls del - hits the BUG as it is removed already  To fix this, change the check in team_queue_override_port_prio_changed() so it returns early if port is not enabled.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71098",
                        "url": "https://ubuntu.com/security/CVE-2025-71098",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ip6_gre: make ip6gre_header() robust  Over the years, syzbot found many ways to crash the kernel in ip6gre_header() [1].  This involves team or bonding drivers ability to dynamically change their dev->needed_headroom and/or dev->hard_header_len  In this particular crash mld_newpack() allocated an skb with a too small reserve/headroom, and by the time mld_sendpack() was called, syzbot managed to attach an ip6gre device.  [1] skbuff: skb_under_panic: text:ffffffff8a1d69a8 len:136 put:40 head:ffff888059bc7000 data:ffff888059bc6fe8 tail:0x70 end:0x6c0 dev:team0 ------------[ cut here ]------------  kernel BUG at net/core/skbuff.c:213 !  <TASK>   skb_under_panic net/core/skbuff.c:223 [inline]   skb_push+0xc3/0xe0 net/core/skbuff.c:2641   ip6gre_header+0xc8/0x790 net/ipv6/ip6_gre.c:1371   dev_hard_header include/linux/netdevice.h:3436 [inline]   neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618   neigh_output include/net/neighbour.h:556 [inline]   ip6_finish_output2+0xfb3/0x1480 net/ipv6/ip6_output.c:136  __ip6_finish_output net/ipv6/ip6_output.c:-1 [inline]   ip6_finish_output+0x234/0x7d0 net/ipv6/ip6_output.c:220   NF_HOOK_COND include/linux/netfilter.h:307 [inline]   ip6_output+0x340/0x550 net/ipv6/ip6_output.c:247   NF_HOOK+0x9e/0x380 include/linux/netfilter.h:318   mld_sendpack+0x8d4/0xe60 net/ipv6/mcast.c:1855   mld_send_cr net/ipv6/mcast.c:2154 [inline]   mld_ifc_work+0x83e/0xd60 net/ipv6/mcast.c:2693",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71082",
                        "url": "https://ubuntu.com/security/CVE-2025-71082",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: btusb: revert use of devm_kzalloc in btusb  This reverts commit 98921dbd00c4e (\"Bluetooth: Use devm_kzalloc in btusb.c file\").  In btusb_probe(), we use devm_kzalloc() to allocate the btusb data. This ties the lifetime of all the btusb data to the binding of a driver to one interface, INTF. In a driver that binds to other interfaces, ISOC and DIAG, this is an accident waiting to happen.  The issue is revealed in btusb_disconnect(), where calling usb_driver_release_interface(&btusb_driver, data->intf) will have devm free the data that is also being used by the other interfaces of the driver that may not be released yet.  To fix this, revert the use of devm and go back to freeing memory explicitly.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71131",
                        "url": "https://ubuntu.com/security/CVE-2025-71131",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: seqiv - Do not use req->iv after crypto_aead_encrypt  As soon as crypto_aead_encrypt is called, the underlying request may be freed by an asynchronous completion.  Thus dereferencing req->iv after it returns is invalid.  Instead of checking req->iv against info, create a new variable unaligned_info and use it for that purpose instead.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71087",
                        "url": "https://ubuntu.com/security/CVE-2025-71087",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iavf: fix off-by-one issues in iavf_config_rss_reg()  There are off-by-one bugs when configuring RSS hash key and lookup table, causing out-of-bounds reads to memory [1] and out-of-bounds writes to device registers.  Before commit 43a3d9ba34c9 (\"i40evf: Allow PF driver to configure RSS\"), the loop upper bounds were:     i <= I40E_VFQF_{HKEY,HLUT}_MAX_INDEX which is safe since the value is the last valid index.  That commit changed the bounds to:     i <= adapter->rss_{key,lut}_size / 4 where `rss_{key,lut}_size / 4` is the number of dwords, so the last valid index is `(rss_{key,lut}_size / 4) - 1`. Therefore, using `<=` accesses one element past the end.  Fix the issues by using `<` instead of `<=`, ensuring we do not exceed the bounds.  [1] KASAN splat about rss_key_size off-by-one   BUG: KASAN: slab-out-of-bounds in iavf_config_rss+0x619/0x800   Read of size 4 at addr ffff888102c50134 by task kworker/u8:6/63    CPU: 0 UID: 0 PID: 63 Comm: kworker/u8:6 Not tainted 6.18.0-rc2-enjuk-tnguy-00378-g3005f5b77652-dirty #156 PREEMPT(voluntary)   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014   Workqueue: iavf iavf_watchdog_task   Call Trace:    <TASK>    dump_stack_lvl+0x6f/0xb0    print_report+0x170/0x4f3    kasan_report+0xe1/0x1a0    iavf_config_rss+0x619/0x800    iavf_watchdog_task+0x2be7/0x3230    process_one_work+0x7fd/0x1420    worker_thread+0x4d1/0xd40    kthread+0x344/0x660    ret_from_fork+0x249/0x320    ret_from_fork_asm+0x1a/0x30    </TASK>    Allocated by task 63:    kasan_save_stack+0x30/0x50    kasan_save_track+0x14/0x30    __kasan_kmalloc+0x7f/0x90    __kmalloc_noprof+0x246/0x6f0    iavf_watchdog_task+0x28fc/0x3230    process_one_work+0x7fd/0x1420    worker_thread+0x4d1/0xd40    kthread+0x344/0x660    ret_from_fork+0x249/0x320    ret_from_fork_asm+0x1a/0x30    The buggy address belongs to the object at ffff888102c50100    which belongs to the cache kmalloc-64 of size 64   The buggy address is located 0 bytes to the right of    allocated 52-byte region [ffff888102c50100, ffff888102c50134)    The buggy address belongs to the physical page:   page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x102c50   flags: 0x200000000000000(node=0|zone=2)   page_type: f5(slab)   raw: 0200000000000000 ffff8881000418c0 dead000000000122 0000000000000000   raw: 0000000000000000 0000000080200020 00000000f5000000 0000000000000000   page dumped because: kasan: bad access detected    Memory state around the buggy address:    ffff888102c50000: 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc fc    ffff888102c50080: 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc fc   >ffff888102c50100: 00 00 00 00 00 00 04 fc fc fc fc fc fc fc fc fc                                        ^    ffff888102c50180: 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc    ffff888102c50200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71111",
                        "url": "https://ubuntu.com/security/CVE-2025-71111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hwmon: (w83791d) Convert macros to functions to avoid TOCTOU  The macro FAN_FROM_REG evaluates its arguments multiple times. When used in lockless contexts involving shared driver data, this leads to Time-of-Check to Time-of-Use (TOCTOU) race conditions, potentially causing divide-by-zero errors.  Convert the macro to a static function. This guarantees that arguments are evaluated only once (pass-by-value), preventing the race conditions.  Additionally, in store_fan_div, move the calculation of the minimum limit inside the update lock. This ensures that the read-modify-write sequence operates on consistent data.  Adhere to the principle of minimal changes by only converting macros that evaluate arguments multiple times and are used in lockless contexts.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68814",
                        "url": "https://ubuntu.com/security/CVE-2025-68814",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  io_uring: fix filename leak in __io_openat_prep()   __io_openat_prep() allocates a struct filename using getname(). However, for the condition of the file being installed in the fixed file table as well as having O_CLOEXEC flag set, the function returns early. At that point, the request doesn't have REQ_F_NEED_CLEANUP flag set. Due to this, the memory for the newly allocated struct filename is not cleaned up, causing a memory leak.  Fix this by setting the REQ_F_NEED_CLEANUP for the request just after the successful getname() call, so that when the request is torn down, the filename will be cleaned up, along with other resources needing cleanup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68788",
                        "url": "https://ubuntu.com/security/CVE-2025-68788",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fsnotify: do not generate ACCESS/MODIFY events on child for special files  inotify/fanotify do not allow users with no read access to a file to subscribe to events (e.g. IN_ACCESS/IN_MODIFY), but they do allow the same user to subscribe for watching events on children when the user has access to the parent directory (e.g. /dev).  Users with no read access to a file but with read access to its parent directory can still stat the file and see if it was accessed/modified via atime/mtime change.  The same is not true for special files (e.g. /dev/null). Users will not generally observe atime/mtime changes when other users read/write to special files, only when someone sets atime/mtime via utimensat().  Align fsnotify events with this stat behavior and do not generate ACCESS/MODIFY events to parent watchers on read/write of special files. The events are still generated to parent watchers on utimensat(). This closes some side-channels that could be possibly used for information exfiltration [1].  [1] https://snee.la/pdf/pubs/file-notification-attacks.pdf",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71125",
                        "url": "https://ubuntu.com/security/CVE-2025-71125",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tracing: Do not register unsupported perf events  Synthetic events currently do not have a function to register perf events. This leads to calling the tracepoint register functions with a NULL function pointer which triggers:   ------------[ cut here ]------------  WARNING: kernel/tracepoint.c:175 at tracepoint_add_func+0x357/0x370, CPU#2: perf/2272  Modules linked in: kvm_intel kvm irqbypass  CPU: 2 UID: 0 PID: 2272 Comm: perf Not tainted 6.18.0-ftest-11964-ge022764176fc-dirty #323 PREEMPTLAZY  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014  RIP: 0010:tracepoint_add_func+0x357/0x370  Code: 28 9c e8 4c 0b f5 ff eb 0f 4c 89 f7 48 c7 c6 80 4d 28 9c e8 ab 89 f4 ff 31 c0 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc cc cc cc cc <0f> 0b 49 c7 c6 ea ff ff ff e9 ee fe ff ff 0f 0b e9 f9 fe ff ff 0f  RSP: 0018:ffffabc0c44d3c40 EFLAGS: 00010246  RAX: 0000000000000001 RBX: ffff9380aa9e4060 RCX: 0000000000000000  RDX: 000000000000000a RSI: ffffffff9e1d4a98 RDI: ffff937fcf5fd6c8  RBP: 0000000000000001 R08: 0000000000000007 R09: ffff937fcf5fc780  R10: 0000000000000003 R11: ffffffff9c193910 R12: 000000000000000a  R13: ffffffff9e1e5888 R14: 0000000000000000 R15: ffffabc0c44d3c78  FS:  00007f6202f5f340(0000) GS:ffff93819f00f000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 000055d3162281a8 CR3: 0000000106a56003 CR4: 0000000000172ef0  Call Trace:   <TASK>   tracepoint_probe_register+0x5d/0x90   synth_event_reg+0x3c/0x60   perf_trace_event_init+0x204/0x340   perf_trace_init+0x85/0xd0   perf_tp_event_init+0x2e/0x50   perf_try_init_event+0x6f/0x230   ? perf_event_alloc+0x4bb/0xdc0   perf_event_alloc+0x65a/0xdc0   __se_sys_perf_event_open+0x290/0x9f0   do_syscall_64+0x93/0x7b0   ? entry_SYSCALL_64_after_hwframe+0x76/0x7e   ? trace_hardirqs_off+0x53/0xc0   entry_SYSCALL_64_after_hwframe+0x76/0x7e  Instead, have the code return -ENODEV, which doesn't warn and has perf error out with:   # perf record -e synthetic:futex_wait Error: The sys_perf_event_open() syscall returned with 19 (No such device) for event (synthetic:futex_wait). \"dmesg | grep -i perf\" may provide additional information.  Ideally perf should support synthetic events, but for now just fix the warning. The support can come later.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71104",
                        "url": "https://ubuntu.com/security/CVE-2025-71104",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV timer  When advancing the target expiration for the guest's APIC timer in periodic mode, set the expiration to \"now\" if the target expiration is in the past (similar to what is done in update_target_expiration()).  Blindly adding the period to the previous target expiration can result in KVM generating a practically unbounded number of hrtimer IRQs due to programming an expired timer over and over.  In extreme scenarios, e.g. if userspace pauses/suspends a VM for an extended duration, this can even cause hard lockups in the host.  Currently, the bug only affects Intel CPUs when using the hypervisor timer (HV timer), a.k.a. the VMX preemption timer.  Unlike the software timer, a.k.a. hrtimer, which KVM keeps running even on exits to userspace, the HV timer only runs while the guest is active.  As a result, if the vCPU does not run for an extended duration, there will be a huge gap between the target expiration and the current time the vCPU resumes running. Because the target expiration is incremented by only one period on each timer expiration, this leads to a series of timer expirations occurring rapidly after the vCPU/VM resumes.  More critically, when the vCPU first triggers a periodic HV timer expiration after resuming, advancing the expiration by only one period will result in a target expiration in the past.  As a result, the delta may be calculated as a negative value.  When the delta is converted into an absolute value (tscdeadline is an unsigned u64), the resulting value can overflow what the HV timer is capable of programming.  I.e. the large value will exceed the VMX Preemption Timer's maximum bit width of cpu_preemption_timer_multi + 32, and thus cause KVM to switch from the HV timer to the software timer (hrtimers).  After switching to the software timer, periodic timer expiration callbacks may be executed consecutively within a single clock interrupt handler, because hrtimers honors KVM's request for an expiration in the past and immediately re-invokes KVM's callback after reprogramming.  And because the interrupt handler runs with IRQs disabled, restarting KVM's hrtimer over and over until the target expiration is advanced to \"now\" can result in a hard lockup.  E.g. the following hard lockup was triggered in the host when running a Windows VM (only relevant because it used the APIC timer in periodic mode) after resuming the VM from a long suspend (in the host).    NMI watchdog: Watchdog detected hard LOCKUP on cpu 45   ...   RIP: 0010:advance_periodic_target_expiration+0x4d/0x80 [kvm]   ...   RSP: 0018:ff4f88f5d98d8ef0 EFLAGS: 00000046   RAX: fff0103f91be678e RBX: fff0103f91be678e RCX: 00843a7d9e127bcc   RDX: 0000000000000002 RSI: 0052ca4003697505 RDI: ff440d5bfbdbd500   RBP: ff440d5956f99200 R08: ff2ff2a42deb6a84 R09: 000000000002a6c0   R10: 0122d794016332b3 R11: 0000000000000000 R12: ff440db1af39cfc0   R13: ff440db1af39cfc0 R14: ffffffffc0d4a560 R15: ff440db1af39d0f8   FS:  00007f04a6ffd700(0000) GS:ff440db1af380000(0000) knlGS:000000e38a3b8000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 000000d5651feff8 CR3: 000000684e038002 CR4: 0000000000773ee0   PKRU: 55555554   Call Trace:    <IRQ>    apic_timer_fn+0x31/0x50 [kvm]    __hrtimer_run_queues+0x100/0x280    hrtimer_interrupt+0x100/0x210    ? ttwu_do_wakeup+0x19/0x160    smp_apic_timer_interrupt+0x6a/0x130    apic_timer_interrupt+0xf/0x20    </IRQ>  Moreover, if the suspend duration of the virtual machine is not long enough to trigger a hard lockup in this scenario, since commit 98c25ead5eda (\"KVM: VMX: Move preemption timer <=> hrtimer dance to common x86\"), KVM will continue using the software timer until the guest reprograms the APIC timer in some way.  Since the periodic timer does not require frequent APIC timer register programming, the guest may continue to use the software timer in ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71116",
                        "url": "https://ubuntu.com/security/CVE-2025-71116",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make decode_pool() more resilient against corrupted osdmaps  If the osdmap is (maliciously) corrupted such that the encoded length of ceph_pg_pool envelope is less than what is expected for a particular encoding version, out-of-bounds reads may ensue because the only bounds check that is there is based on that length value.  This patch adds explicit bounds checks for each field that is decoded or skipped.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71121",
                        "url": "https://ubuntu.com/security/CVE-2025-71121",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  parisc: Do not reprogram affinitiy on ASP chip  The ASP chip is a very old variant of the GSP chip and is used e.g. in HP 730 workstations. When trying to reprogram the affinity it will crash with a HPMC as the relevant registers don't seem to be at the usual location.  Let's avoid the crash by checking the sversion. Also note, that reprogramming isn't necessary either, as the HP730 is a just a single-CPU machine.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71102",
                        "url": "https://ubuntu.com/security/CVE-2025-71102",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scs: fix a wrong parameter in __scs_magic  __scs_magic() needs a 'void *' variable, but a 'struct task_struct *' is given.  'task_scs(tsk)' is the starting address of the task's shadow call stack, and '__scs_magic(task_scs(tsk))' is the end address of the task's shadow call stack.  Here should be '__scs_magic(task_scs(tsk))'.  The user-visible effect of this bug is that when CONFIG_DEBUG_STACK_USAGE is enabled, the shadow call stack usage checking function (scs_check_usage) would scan an incorrect memory range.  This could lead  1. **Inaccurate stack usage reporting**: The function would calculate    wrong usage statistics for the shadow call stack, potentially showing    incorrect value in kmsg.  2. **Potential kernel crash**: If the value of __scs_magic(tsk)is    greater than that of __scs_magic(task_scs(tsk)), the for loop may    access unmapped memory, potentially causing a kernel panic.  However,    this scenario is unlikely because task_struct is allocated via the slab    allocator (which typically returns lower addresses), while the shadow    call stack returned by task_scs(tsk) is allocated via vmalloc(which    typically returns higher addresses).  However, since this is purely a debugging feature (CONFIG_DEBUG_STACK_USAGE), normal production systems should be not unaffected.  The bug only impacts developers and testers who are actively debugging stack usage with this configuration enabled.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68804",
                        "url": "https://ubuntu.com/security/CVE-2025-68804",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/chrome: cros_ec_ishtp: Fix UAF after unbinding driver  After unbinding the driver, another kthread `cros_ec_console_log_work` is still accessing the device, resulting an UAF and crash.  The driver doesn't unregister the EC device in .remove() which should shutdown sub-devices synchronously.  Fix it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68771",
                        "url": "https://ubuntu.com/security/CVE-2025-68771",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ocfs2: fix kernel BUG in ocfs2_find_victim_chain  syzbot reported a kernel BUG in ocfs2_find_victim_chain() because the `cl_next_free_rec` field of the allocation chain list (next free slot in the chain list) is 0, triggring the BUG_ON(!cl->cl_next_free_rec) condition in ocfs2_find_victim_chain() and panicking the kernel.  To fix this, an if condition is introduced in ocfs2_claim_suballoc_bits(), just before calling ocfs2_find_victim_chain(), the code block in it being executed when either of the following conditions is true:  1. `cl_next_free_rec` is equal to 0, indicating that there are no free chains in the allocation chain list 2. `cl_next_free_rec` is greater than `cl_count` (the total number of chains in the allocation chain list)  Either of them being true is indicative of the fact that there are no chains left for usage.  This is addressed using ocfs2_error(), which prints the error log for debugging purposes, rather than panicking the kernel.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68808",
                        "url": "https://ubuntu.com/security/CVE-2025-68808",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: vidtv: initialize local pointers upon transfer of memory ownership  vidtv_channel_si_init() creates a temporary list (program, service, event) and ownership of the memory itself is transferred to the PAT/SDT/EIT tables through vidtv_psi_pat_program_assign(), vidtv_psi_sdt_service_assign(), vidtv_psi_eit_event_assign().  The problem here is that the local pointer where the memory ownership transfer was completed is not initialized to NULL. This causes the vidtv_psi_pmt_create_sec_for_each_pat_entry() function to fail, and in the flow that jumps to free_eit, the memory that was freed by vidtv_psi_*_table_destroy() can be accessed again by vidtv_psi_*_event_destroy() due to the uninitialized local pointer, so it is freed once again.  Therefore, to prevent use-after-free and double-free vulnerability, local pointers must be initialized to NULL when transferring memory ownership.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68769",
                        "url": "https://ubuntu.com/security/CVE-2025-68769",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix return value of f2fs_recover_fsync_data()  With below scripts, it will trigger panic in f2fs:  mkfs.f2fs -f /dev/vdd mount /dev/vdd /mnt/f2fs touch /mnt/f2fs/foo sync echo 111 >> /mnt/f2fs/foo f2fs_io fsync /mnt/f2fs/foo f2fs_io shutdown 2 /mnt/f2fs umount /mnt/f2fs mount -o ro,norecovery /dev/vdd /mnt/f2fs or mount -o ro,disable_roll_forward /dev/vdd /mnt/f2fs  F2FS-fs (vdd): f2fs_recover_fsync_data: recovery fsync data, check_only: 0 F2FS-fs (vdd): Mounted with checkpoint version = 7f5c361f F2FS-fs (vdd): Stopped filesystem due to reason: 0 F2FS-fs (vdd): f2fs_recover_fsync_data: recovery fsync data, check_only: 1 Filesystem f2fs get_tree() didn't set fc->root, returned 1 ------------[ cut here ]------------ kernel BUG at fs/super.c:1761! Oops: invalid opcode: 0000 [#1] SMP PTI CPU: 3 UID: 0 PID: 722 Comm: mount Not tainted 6.18.0-rc2+ #721 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:vfs_get_tree.cold+0x18/0x1a Call Trace:  <TASK>  fc_mount+0x13/0xa0  path_mount+0x34e/0xc50  __x64_sys_mount+0x121/0x150  do_syscall_64+0x84/0x800  entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fa6cc126cfe  The root cause is we missed to handle error number returned from f2fs_recover_fsync_data() when mounting image w/ ro,norecovery or ro,disable_roll_forward mount option, result in returning a positive error number to vfs_get_tree(), fix it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71069",
                        "url": "https://ubuntu.com/security/CVE-2025-71069",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: invalidate dentry cache on failed whiteout creation  F2FS can mount filesystems with corrupted directory depth values that get runtime-clamped to MAX_DIR_HASH_DEPTH. When RENAME_WHITEOUT operations are performed on such directories, f2fs_rename performs directory modifications (updating target entry and deleting source entry) before attempting to add the whiteout entry via f2fs_add_link.  If f2fs_add_link fails due to the corrupted directory structure, the function returns an error to VFS, but the partial directory modifications have already been committed to disk. VFS assumes the entire rename operation failed and does not update the dentry cache, leaving stale mappings.  In the error path, VFS does not call d_move() to update the dentry cache. This results in new_dentry still pointing to the old inode (new_inode) which has already had its i_nlink decremented to zero. The stale cache causes subsequent operations to incorrectly reference the freed inode.  This causes subsequent operations to use cached dentry information that no longer matches the on-disk state. When a second rename targets the same entry, VFS attempts to decrement i_nlink on the stale inode, which may already have i_nlink=0, triggering a WARNING in drop_nlink().  Example sequence: 1. First rename (RENAME_WHITEOUT): file2 → file1    - f2fs updates file1 entry on disk (points to inode 8)    - f2fs deletes file2 entry on disk    - f2fs_add_link(whiteout) fails (corrupted directory)    - Returns error to VFS    - VFS does not call d_move() due to error    - VFS cache still has: file1 → inode 7 (stale!)    - inode 7 has i_nlink=0 (already decremented)  2. Second rename: file3 → file1    - VFS uses stale cache: file1 → inode 7    - Tries to drop_nlink on inode 7 (i_nlink already 0)    - WARNING in drop_nlink()  Fix this by explicitly invalidating old_dentry and new_dentry when f2fs_add_link fails during whiteout creation. This forces VFS to refresh from disk on subsequent operations, ensuring cache consistency even when the rename partially succeeds.  Reproducer: 1. Mount F2FS image with corrupted i_current_depth 2. renameat2(file2, file1, RENAME_WHITEOUT) 3. renameat2(file3, file1, 0) 4. System triggers WARNING in drop_nlink()",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68782",
                        "url": "https://ubuntu.com/security/CVE-2025-68782",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: Reset t_task_cdb pointer in error case  If allocation of cmd->t_task_cdb fails, it remains NULL but is later dereferenced in the 'err' path.  In case of error, reset NULL t_task_cdb value to point at the default fixed-size buffer.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71075",
                        "url": "https://ubuntu.com/security/CVE-2025-71075",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: aic94xx: fix use-after-free in device removal path  The asd_pci_remove() function fails to synchronize with pending tasklets before freeing the asd_ha structure, leading to a potential use-after-free vulnerability.  When a device removal is triggered (via hot-unplug or module unload), race condition can occur.  The fix adds tasklet_kill() before freeing the asd_ha structure, ensuring all scheduled tasklets complete before cleanup proceeds.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68818",
                        "url": "https://ubuntu.com/security/CVE-2025-68818",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: Revert \"scsi: qla2xxx: Perform lockless command completion in abort path\"  This reverts commit 0367076b0817d5c75dfb83001ce7ce5c64d803a9.  The commit being reverted added code to __qla2x00_abort_all_cmds() to call sp->done() without holding a spinlock.  But unlike the older code below it, this new code failed to check sp->cmd_type and just assumed TYPE_SRB, which results in a jump to an invalid pointer in target-mode with TYPE_TGT_CMD:  qla2xxx [0000:65:00.0]-d034:8: qla24xx_do_nack_work create sess success   0000000009f7a79b qla2xxx [0000:65:00.0]-5003:8: ISP System Error - mbx1=1ff5h mbx2=10h   mbx3=0h mbx4=0h mbx5=191h mbx6=0h mbx7=0h. qla2xxx [0000:65:00.0]-d01e:8: -> fwdump no buffer qla2xxx [0000:65:00.0]-f03a:8: qla_target(0): System error async event   0x8002 occurred qla2xxx [0000:65:00.0]-00af:8: Performing ISP error recovery -   ha=0000000058183fda. BUG: kernel NULL pointer dereference, address: 0000000000000000 PF: supervisor instruction fetch in kernel mode PF: error_code(0x0010) - not-present page PGD 0 P4D 0 Oops: 0010 [#1] SMP CPU: 2 PID: 9446 Comm: qla2xxx_8_dpc Tainted: G           O       6.1.133 #1 Hardware name: Supermicro Super Server/X11SPL-F, BIOS 4.2 12/15/2023 RIP: 0010:0x0 Code: Unable to access opcode bytes at 0xffffffffffffffd6. RSP: 0018:ffffc90001f93dc8 EFLAGS: 00010206 RAX: 0000000000000282 RBX: 0000000000000355 RCX: ffff88810d16a000 RDX: ffff88810dbadaa8 RSI: 0000000000080000 RDI: ffff888169dc38c0 RBP: ffff888169dc38c0 R08: 0000000000000001 R09: 0000000000000045 R10: ffffffffa034bdf0 R11: 0000000000000000 R12: ffff88810800bb40 R13: 0000000000001aa8 R14: ffff888100136610 R15: ffff8881070f7400 FS:  0000000000000000(0000) GS:ffff88bf80080000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffffffffd6 CR3: 000000010c8ff006 CR4: 00000000003706e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace:  <TASK>  ? __die+0x4d/0x8b  ? page_fault_oops+0x91/0x180  ? trace_buffer_unlock_commit_regs+0x38/0x1a0  ? exc_page_fault+0x391/0x5e0  ? asm_exc_page_fault+0x22/0x30  __qla2x00_abort_all_cmds+0xcb/0x3e0 [qla2xxx_scst]  qla2x00_abort_all_cmds+0x50/0x70 [qla2xxx_scst]  qla2x00_abort_isp_cleanup+0x3b7/0x4b0 [qla2xxx_scst]  qla2x00_abort_isp+0xfd/0x860 [qla2xxx_scst]  qla2x00_do_dpc+0x581/0xa40 [qla2xxx_scst]  kthread+0xa8/0xd0  </TASK>  Then commit 4475afa2646d (\"scsi: qla2xxx: Complete command early within lock\") added the spinlock back, because not having the lock caused a race and a crash.  But qla2x00_abort_srb() in the switch below already checks for qla2x00_chip_is_down() and handles it the same way, so the code above the switch is now redundant and still buggy in target-mode. Remove it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68797",
                        "url": "https://ubuntu.com/security/CVE-2025-68797",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  char: applicom: fix NULL pointer dereference in ac_ioctl  Discovered by Atuin - Automated Vulnerability Discovery Engine.  In ac_ioctl, the validation of IndexCard and the check for a valid RamIO pointer are skipped when cmd is 6. However, the function unconditionally executes readb(apbs[IndexCard].RamIO + VERS) at the end.  If cmd is 6, IndexCard may reference a board that does not exist (where RamIO is NULL), leading to a NULL pointer dereference.  Fix this by skipping the readb access when cmd is 6, as this command is a global information query and does not target a specific board context.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68819",
                        "url": "https://ubuntu.com/security/CVE-2025-68819",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()  rlen value is a user-controlled value, but dtv5100_i2c_msg() does not check the size of the rlen value. Therefore, if it is set to a value larger than sizeof(st->data), an out-of-bounds vuln occurs for st->data.  Therefore, we need to add proper range checking to prevent this vuln.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68820",
                        "url": "https://ubuntu.com/security/CVE-2025-68820",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: xattr: fix null pointer deref in ext4_raw_inode()  If ext4_get_inode_loc() fails (e.g. if it returns -EFSCORRUPTED), iloc.bh will remain set to NULL. Since ext4_xattr_inode_dec_ref_all() lacks error checking, this will lead to a null pointer dereference in ext4_raw_inode(), called right after ext4_get_inode_loc().  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71147",
                        "url": "https://ubuntu.com/security/CVE-2025-71147",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KEYS: trusted: Fix a memory leak in tpm2_load_cmd  'tpm2_load_cmd' allocates a tempoary blob indirectly via 'tpm2_key_decode' but it is not freed in the failure paths. Address this by wrapping the blob into with a cleanup helper.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71108",
                        "url": "https://ubuntu.com/security/CVE-2025-71108",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: typec: ucsi: Handle incorrect num_connectors capability  The UCSI spec states that the num_connectors field is 7 bits, and the 8th bit is reserved and should be set to zero. Some buggy FW has been known to set this bit, and it can lead to a system not booting. Flag that the FW is not behaving correctly, and auto-fix the value so that the system boots correctly.  Found on Lenovo P1 G8 during Linux enablement program. The FW will be fixed, but seemed worth addressing in case it hit platforms that aren't officially Linux supported.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71114",
                        "url": "https://ubuntu.com/security/CVE-2025-71114",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  via_wdt: fix critical boot hang due to unnamed resource allocation  The VIA watchdog driver uses allocate_resource() to reserve a MMIO region for the watchdog control register. However, the allocated resource was not given a name, which causes the kernel resource tree to contain an entry marked as \"<BAD>\" under /proc/iomem on x86 platforms.  During boot, this unnamed resource can lead to a critical hang because subsequent resource lookups and conflict checks fail to handle the invalid entry properly.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68783",
                        "url": "https://ubuntu.com/security/CVE-2025-68783",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-mixer: us16x08: validate meter packet indices  get_meter_levels_from_urb() parses the 64-byte meter packets sent by the device and fills the per-channel arrays meter_level[], comp_level[] and master_level[] in struct snd_us16x08_meter_store.  Currently the function derives the channel index directly from the meter packet (MUB2(meter_urb, s) - 1) and uses it to index those arrays without validating the range. If the packet contains a negative or out-of-range channel number, the driver may write past the end of these arrays.  Introduce a local channel variable and validate it before updating the arrays. We reject negative indices, limit meter_level[] and comp_level[] to SND_US16X08_MAX_CHANNELS, and guard master_level[] updates with ARRAY_SIZE(master_level).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68776",
                        "url": "https://ubuntu.com/security/CVE-2025-68776",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/hsr: fix NULL pointer dereference in prp_get_untagged_frame()  prp_get_untagged_frame() calls __pskb_copy() to create frame->skb_std but doesn't check if the allocation failed. If __pskb_copy() returns NULL, skb_clone() is called with a NULL pointer, causing a crash:  Oops: general protection fault, probably for non-canonical address 0xdffffc000000000f: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000078-0x000000000000007f] CPU: 0 UID: 0 PID: 5625 Comm: syz.1.18 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:skb_clone+0xd7/0x3a0 net/core/skbuff.c:2041 Code: 03 42 80 3c 20 00 74 08 4c 89 f7 e8 23 29 05 f9 49 83 3e 00 0f 85 a0 01 00 00 e8 94 dd 9d f8 48 8d 6b 7e 49 89 ee 49 c1 ee 03 <43> 0f b6 04 26 84 c0 0f 85 d1 01 00 00 44 0f b6 7d 00 41 83 e7 0c RSP: 0018:ffffc9000d00f200 EFLAGS: 00010207 RAX: ffffffff892235a1 RBX: 0000000000000000 RCX: ffff88803372a480 RDX: 0000000000000000 RSI: 0000000000000820 RDI: 0000000000000000 RBP: 000000000000007e R08: ffffffff8f7d0f77 R09: 1ffffffff1efa1ee R10: dffffc0000000000 R11: fffffbfff1efa1ef R12: dffffc0000000000 R13: 0000000000000820 R14: 000000000000000f R15: ffff88805144cc00 FS:  0000555557f6d500(0000) GS:ffff88808d72f000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000555581d35808 CR3: 000000005040e000 CR4: 0000000000352ef0 Call Trace:  <TASK>  hsr_forward_do net/hsr/hsr_forward.c:-1 [inline]  hsr_forward_skb+0x1013/0x2860 net/hsr/hsr_forward.c:741  hsr_handle_frame+0x6ce/0xa70 net/hsr/hsr_slave.c:84  __netif_receive_skb_core+0x10b9/0x4380 net/core/dev.c:5966  __netif_receive_skb_one_core net/core/dev.c:6077 [inline]  __netif_receive_skb+0x72/0x380 net/core/dev.c:6192  netif_receive_skb_internal net/core/dev.c:6278 [inline]  netif_receive_skb+0x1cb/0x790 net/core/dev.c:6337  tun_rx_batched+0x1b9/0x730 drivers/net/tun.c:1485  tun_get_user+0x2b65/0x3e90 drivers/net/tun.c:1953  tun_chr_write_iter+0x113/0x200 drivers/net/tun.c:1999  new_sync_write fs/read_write.c:593 [inline]  vfs_write+0x5c9/0xb30 fs/read_write.c:686  ksys_write+0x145/0x250 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f0449f8e1ff Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 f9 92 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 4c 93 02 00 48 RSP: 002b:00007ffd7ad94c90 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007f044a1e5fa0 RCX: 00007f0449f8e1ff RDX: 000000000000003e RSI: 0000200000000500 RDI: 00000000000000c8 RBP: 00007ffd7ad94d20 R08: 0000000000000000 R09: 0000000000000000 R10: 000000000000003e R11: 0000000000000293 R12: 0000000000000001 R13: 00007f044a1e5fa0 R14: 00007f044a1e5fa0 R15: 0000000000000003  </TASK>  Add a NULL check immediately after __pskb_copy() to handle allocation failures gracefully.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68777",
                        "url": "https://ubuntu.com/security/CVE-2025-68777",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: ti_am335x_tsc - fix off-by-one error in wire_order validation  The current validation 'wire_order[i] > ARRAY_SIZE(config_pins)' allows wire_order[i] to equal ARRAY_SIZE(config_pins), which causes out-of-bounds access when used as index in 'config_pins[wire_order[i]]'.  Since config_pins has 4 elements (indices 0-3), the valid range for wire_order should be 0-3. Fix the off-by-one error by using >= instead of > in the validation check.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71112",
                        "url": "https://ubuntu.com/security/CVE-2025-71112",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hns3: add VLAN id validation before using  Currently, the VLAN id may be used without validation when receive a VLAN configuration mailbox from VF. The length of vlan_del_fail_bmap is BITS_TO_LONGS(VLAN_N_VID). It may cause out-of-bounds memory access once the VLAN id is bigger than or equal to VLAN_N_VID.  Therefore, VLAN id needs to be checked to ensure it is within the range of VLAN_N_VID.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71064",
                        "url": "https://ubuntu.com/security/CVE-2025-71064",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hns3: using the num_tqps in the vf driver to apply for resources  Currently, hdev->htqp is allocated using hdev->num_tqps, and kinfo->tqp is allocated using kinfo->num_tqps. However, kinfo->num_tqps is set to min(new_tqps, hdev->num_tqps);  Therefore, kinfo->num_tqps may be smaller than hdev->num_tqps, which causes some hdev->htqp[i] to remain uninitialized in hclgevf_knic_setup().  Thus, this patch allocates hdev->htqp and kinfo->tqp using hdev->num_tqps, ensuring that the lengths of hdev->htqp and kinfo->tqp are consistent and that all elements are properly initialized.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68816",
                        "url": "https://ubuntu.com/security/CVE-2025-68816",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5: fw_tracer, Validate format string parameters  Add validation for format string parameters in the firmware tracer to prevent potential security vulnerabilities and crashes from malformed format strings received from firmware.  The firmware tracer receives format strings from the device firmware and uses them to format trace messages. Without proper validation, bad firmware could provide format strings with invalid format specifiers (e.g., %s, %p, %n) that could lead to crashes, or other undefined behavior.  Add mlx5_tracer_validate_params() to validate that all format specifiers in trace strings are limited to safe integer/hex formats (%x, %d, %i, %u, %llx, %lx, etc.). Reject strings containing other format types that could be used to access arbitrary memory or cause crashes. Invalid format strings are added to the trace output for visibility with \"BAD_FORMAT: \" prefix.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68795",
                        "url": "https://ubuntu.com/security/CVE-2025-68795",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ethtool: Avoid overflowing userspace buffer on stats query  The ethtool -S command operates across three ioctl calls: ETHTOOL_GSSET_INFO for the size, ETHTOOL_GSTRINGS for the names, and ETHTOOL_GSTATS for the values.  If the number of stats changes between these calls (e.g., due to device reconfiguration), userspace's buffer allocation will be incorrect, potentially leading to buffer overflow.  Drivers are generally expected to maintain stable stat counts, but some drivers (e.g., mlx5, bnx2x, bna, ksz884x) use dynamic counters, making this scenario possible.  Some drivers try to handle this internally: - bnad_get_ethtool_stats() returns early in case stats.n_stats is not   equal to the driver's stats count. - micrel/ksz884x also makes sure not to write anything beyond   stats.n_stats and overflow the buffer.  However, both use stats.n_stats which is already assigned with the value returned from get_sset_count(), hence won't solve the issue described here.  Change ethtool_get_strings(), ethtool_get_stats(), ethtool_get_phy_stats() to not return anything in case of a mismatch between userspace's size and get_sset_size(), to prevent buffer overflow. The returned n_stats value will be equal to zero, to reflect that nothing has been returned.  This could result in one of two cases when using upstream ethtool, depending on when the size change is detected: 1. When detected in ethtool_get_strings():     # ethtool -S eth2     no stats available  2. When detected in get stats, all stats will be reported as zero.  Both cases are presumably transient, and a subsequent ethtool call should succeed.  Other than the overflow avoidance, these two cases are very evident (no output/cleared stats), which is arguably better than presenting incorrect/shifted stats. I also considered returning an error instead of a \"silent\" response, but that seems more destructive towards userspace apps.  Notes: - This patch does not claim to fix the inherent race, it only makes sure   that we do not overflow the userspace buffer, and makes for a more   predictable behavior.  - RTNL lock is held during each ioctl, the race window exists between   the separate ioctl calls when the lock is released.  - Userspace ethtool always fills stats.n_stats, but it is likely that   these stats ioctls are implemented in other userspace applications   which might not fill it. The added code checks that it's not zero,   to prevent any regressions.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68815",
                        "url": "https://ubuntu.com/security/CVE-2025-68815",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: ets: Remove drr class from the active list if it changes to strict  Whenever a user issues an ets qdisc change command, transforming a drr class into a strict one, the ets code isn't checking whether that class was in the active list and removing it. This means that, if a user changes a strict class (which was in the active list) back to a drr one, that class will be added twice to the active list [1].  Doing so with the following commands:  tc qdisc add dev lo root handle 1: ets bands 2 strict 1 tc qdisc add dev lo parent 1:2 handle 20: \\     tbf rate 8bit burst 100b latency 1s tc filter add dev lo parent 1: basic classid 1:2 ping -c1 -W0.01 -s 56 127.0.0.1 tc qdisc change dev lo root handle 1: ets bands 2 strict 2 tc qdisc change dev lo root handle 1: ets bands 2 strict 1 ping -c1 -W0.01 -s 56 127.0.0.1  Will trigger the following splat with list debug turned on:  [   59.279014][  T365] ------------[ cut here ]------------ [   59.279452][  T365] list_add double add: new=ffff88801d60e350, prev=ffff88801d60e350, next=ffff88801d60e2c0. [   59.280153][  T365] WARNING: CPU: 3 PID: 365 at lib/list_debug.c:35 __list_add_valid_or_report+0x17f/0x220 [   59.280860][  T365] Modules linked in: [   59.281165][  T365] CPU: 3 UID: 0 PID: 365 Comm: tc Not tainted 6.18.0-rc7-00105-g7e9f13163c13-dirty #239 PREEMPT(voluntary) [   59.281977][  T365] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [   59.282391][  T365] RIP: 0010:__list_add_valid_or_report+0x17f/0x220 [   59.282842][  T365] Code: 89 c6 e8 d4 b7 0d ff 90 0f 0b 90 90 31 c0 e9 31 ff ff ff 90 48 c7 c7 e0 a0 22 9f 48 89 f2 48 89 c1 4c 89 c6 e8 b2 b7 0d ff 90 <0f> 0b 90 90 31 c0 e9 0f ff ff ff 48 89 f7 48 89 44 24 10 4c 89 44 ... [   59.288812][  T365] Call Trace: [   59.289056][  T365]  <TASK> [   59.289224][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.289546][  T365]  ets_qdisc_change+0xd2b/0x1e80 [   59.289891][  T365]  ? __lock_acquire+0x7e7/0x1be0 [   59.290223][  T365]  ? __pfx_ets_qdisc_change+0x10/0x10 [   59.290546][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.290898][  T365]  ? __mutex_trylock_common+0xda/0x240 [   59.291228][  T365]  ? __pfx___mutex_trylock_common+0x10/0x10 [   59.291655][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.291993][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.292313][  T365]  ? trace_contention_end+0xc8/0x110 [   59.292656][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.293022][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.293351][  T365]  tc_modify_qdisc+0x63a/0x1cf0  Fix this by always checking and removing an ets class from the active list when changing it to strict.  [1] https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/net/sched/sch_ets.c?id=ce052b9402e461a9aded599f5b47e76bc727f7de#n663",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68799",
                        "url": "https://ubuntu.com/security/CVE-2025-68799",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  caif: fix integer underflow in cffrml_receive()  The cffrml_receive() function extracts a length field from the packet header and, when FCS is disabled, subtracts 2 from this length without validating that len >= 2.  If an attacker sends a malicious packet with a length field of 0 or 1 to an interface with FCS disabled, the subtraction causes an integer underflow.  This can lead to memory exhaustion and kernel instability, potential information disclosure if padding contains uninitialized kernel memory.  Fix this by validating that len >= 2 before performing the subtraction.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68813",
                        "url": "https://ubuntu.com/security/CVE-2025-68813",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: fix ipv4 null-ptr-deref in route error path  The IPv4 code path in __ip_vs_get_out_rt() calls dst_link_failure() without ensuring skb->dev is set, leading to a NULL pointer dereference in fib_compute_spec_dst() when ipv4_link_failure() attempts to send ICMP destination unreachable messages.  The issue emerged after commit ed0de45a1008 (\"ipv4: recompile ip options in ipv4_link_failure\") started calling __ip_options_compile() from ipv4_link_failure(). This code path eventually calls fib_compute_spec_dst() which dereferences skb->dev. An attempt was made to fix the NULL skb->dev dereference in commit 0113d9c9d1cc (\"ipv4: fix null-deref in ipv4_link_failure\"), but it only addressed the immediate dev_net(skb->dev) dereference by using a fallback device. The fix was incomplete because fib_compute_spec_dst() later in the call chain still accesses skb->dev directly, which remains NULL when IPVS calls dst_link_failure().  The crash occurs when: 1. IPVS processes a packet in NAT mode with a misconfigured destination 2. Route lookup fails in __ip_vs_get_out_rt() before establishing a route 3. The error path calls dst_link_failure(skb) with skb->dev == NULL 4. ipv4_link_failure() → ipv4_send_dest_unreach() →    __ip_options_compile() → fib_compute_spec_dst() 5. fib_compute_spec_dst() dereferences NULL skb->dev  Apply the same fix used for IPv6 in commit 326bf17ea5d4 (\"ipvs: fix ipv6 route unreach panic\"): set skb->dev from skb_dst(skb)->dev before calling dst_link_failure().  KASAN: null-ptr-deref in range [0x0000000000000328-0x000000000000032f] CPU: 1 PID: 12732 Comm: syz.1.3469 Not tainted 6.6.114 #2 RIP: 0010:__in_dev_get_rcu include/linux/inetdevice.h:233 RIP: 0010:fib_compute_spec_dst+0x17a/0x9f0 net/ipv4/fib_frontend.c:285 Call Trace:   <TASK>   spec_dst_fill net/ipv4/ip_options.c:232   spec_dst_fill net/ipv4/ip_options.c:229   __ip_options_compile+0x13a1/0x17d0 net/ipv4/ip_options.c:330   ipv4_send_dest_unreach net/ipv4/route.c:1252   ipv4_link_failure+0x702/0xb80 net/ipv4/route.c:1265   dst_link_failure include/net/dst.h:437   __ip_vs_get_out_rt+0x15fd/0x19e0 net/netfilter/ipvs/ip_vs_xmit.c:412   ip_vs_nat_xmit+0x1d8/0xc80 net/netfilter/ipvs/ip_vs_xmit.c:764",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68785",
                        "url": "https://ubuntu.com/security/CVE-2025-68785",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: openvswitch: fix middle attribute validation in push_nsh() action  The push_nsh() action structure looks like this:   OVS_ACTION_ATTR_PUSH_NSH(OVS_KEY_ATTR_NSH(OVS_NSH_KEY_ATTR_BASE,...))  The outermost OVS_ACTION_ATTR_PUSH_NSH attribute is OK'ed by the nla_for_each_nested() inside __ovs_nla_copy_actions().  The innermost OVS_NSH_KEY_ATTR_BASE/MD1/MD2 are OK'ed by the nla_for_each_nested() inside nsh_key_put_from_nlattr().  But nothing checks if the attribute in the middle is OK.  We don't even check that this attribute is the OVS_KEY_ATTR_NSH.  We just do a double unwrap with a pair of nla_data() calls - first time directly while calling validate_push_nsh() and the second time as part of the nla_for_each_nested() macro, which isn't safe, potentially causing invalid memory access if the size of this attribute is incorrect.  The failure may not be noticed during validation due to larger netlink buffer, but cause trouble later during action execution where the buffer is allocated exactly to the size:   BUG: KASAN: slab-out-of-bounds in nsh_hdr_from_nlattr+0x1dd/0x6a0 [openvswitch]  Read of size 184 at addr ffff88816459a634 by task a.out/22624   CPU: 8 UID: 0 PID: 22624 6.18.0-rc7+ #115 PREEMPT(voluntary)  Call Trace:   <TASK>   dump_stack_lvl+0x51/0x70   print_address_description.constprop.0+0x2c/0x390   kasan_report+0xdd/0x110   kasan_check_range+0x35/0x1b0   __asan_memcpy+0x20/0x60   nsh_hdr_from_nlattr+0x1dd/0x6a0 [openvswitch]   push_nsh+0x82/0x120 [openvswitch]   do_execute_actions+0x1405/0x2840 [openvswitch]   ovs_execute_actions+0xd5/0x3b0 [openvswitch]   ovs_packet_cmd_execute+0x949/0xdb0 [openvswitch]   genl_family_rcv_msg_doit+0x1d6/0x2b0   genl_family_rcv_msg+0x336/0x580   genl_rcv_msg+0x9f/0x130   netlink_rcv_skb+0x11f/0x370   genl_rcv+0x24/0x40   netlink_unicast+0x73e/0xaa0   netlink_sendmsg+0x744/0xbf0   __sys_sendto+0x3d6/0x450   do_syscall_64+0x79/0x2c0   entry_SYSCALL_64_after_hwframe+0x76/0x7e   </TASK>  Let's add some checks that the attribute is properly sized and it's the only one attribute inside the action.  Technically, there is no real reason for OVS_KEY_ATTR_NSH to be there, as we know that we're pushing an NSH header already, it just creates extra nesting, but that's how uAPI works today.  So, keeping as it is.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68800",
                        "url": "https://ubuntu.com/security/CVE-2025-68800",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mlxsw: spectrum_mr: Fix use-after-free when updating multicast route stats  Cited commit added a dedicated mutex (instead of RTNL) to protect the multicast route list, so that it will not change while the driver periodically traverses it in order to update the kernel about multicast route stats that were queried from the device.  One instance of list entry deletion (during route replace) was missed and it can result in a use-after-free [1].  Fix by acquiring the mutex before deleting the entry from the list and releasing it afterwards.  [1] BUG: KASAN: slab-use-after-free in mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum] Read of size 8 at addr ffff8881523c2fa8 by task kworker/2:5/22043  CPU: 2 UID: 0 PID: 22043 Comm: kworker/2:5 Not tainted 6.18.0-rc1-custom-g1a3d6d7cd014 #1 PREEMPT(full) Hardware name: Mellanox Technologies Ltd. MSN2010/SA002610, BIOS 5.6.5 08/24/2017 Workqueue: mlxsw_core mlxsw_sp_mr_stats_update [mlxsw_spectrum] Call Trace:  <TASK>  dump_stack_lvl+0xba/0x110  print_report+0x174/0x4f5  kasan_report+0xdf/0x110  mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30  </TASK>  Allocated by task 29933:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0x8f/0xa0  mlxsw_sp_mr_route_add+0xd8/0x4770 [mlxsw_spectrum]  mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30  Freed by task 29933:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_save_free_info+0x3b/0x70  __kasan_slab_free+0x43/0x70  kfree+0x14e/0x700  mlxsw_sp_mr_route_add+0x2dea/0x4770 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:444 [mlxsw_spectrum]  mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68801",
                        "url": "https://ubuntu.com/security/CVE-2025-68801",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mlxsw: spectrum_router: Fix neighbour use-after-free  We sometimes observe use-after-free when dereferencing a neighbour [1]. The problem seems to be that the driver stores a pointer to the neighbour, but without holding a reference on it. A reference is only taken when the neighbour is used by a nexthop.  Fix by simplifying the reference counting scheme. Always take a reference when storing a neighbour pointer in a neighbour entry. Avoid taking a referencing when the neighbour is used by a nexthop as the neighbour entry associated with the nexthop already holds a reference.  Tested by running the test that uncovered the problem over 300 times. Without this patch the problem was reproduced after a handful of iterations.  [1] BUG: KASAN: slab-use-after-free in mlxsw_sp_neigh_entry_update+0x2d4/0x310 Read of size 8 at addr ffff88817f8e3420 by task ip/3929  CPU: 3 UID: 0 PID: 3929 Comm: ip Not tainted 6.18.0-rc4-virtme-g36b21a067510 #3 PREEMPT(full) Hardware name: Nvidia SN5600/VMOD0013, BIOS 5.13 05/31/2023 Call Trace:  <TASK>  dump_stack_lvl+0x6f/0xa0  print_address_description.constprop.0+0x6e/0x300  print_report+0xfc/0x1fb  kasan_report+0xe4/0x110  mlxsw_sp_neigh_entry_update+0x2d4/0x310  mlxsw_sp_router_rif_gone_sync+0x35f/0x510  mlxsw_sp_rif_destroy+0x1ea/0x730  mlxsw_sp_inetaddr_port_vlan_event+0xa1/0x1b0  __mlxsw_sp_inetaddr_lag_event+0xcc/0x130  __mlxsw_sp_inetaddr_event+0xf5/0x3c0  mlxsw_sp_router_netdevice_event+0x1015/0x1580  notifier_call_chain+0xcc/0x150  call_netdevice_notifiers_info+0x7e/0x100  __netdev_upper_dev_unlink+0x10b/0x210  netdev_upper_dev_unlink+0x79/0xa0  vrf_del_slave+0x18/0x50  do_set_master+0x146/0x7d0  do_setlink.isra.0+0x9a0/0x2880  rtnl_newlink+0x637/0xb20  rtnetlink_rcv_msg+0x6fe/0xb90  netlink_rcv_skb+0x123/0x380  netlink_unicast+0x4a3/0x770  netlink_sendmsg+0x75b/0xc90  __sock_sendmsg+0xbe/0x160  ____sys_sendmsg+0x5b2/0x7d0  ___sys_sendmsg+0xfd/0x180  __sys_sendmsg+0x124/0x1c0  do_syscall_64+0xbb/0xfd0  entry_SYSCALL_64_after_hwframe+0x4b/0x53 [...]  Allocated by task 109:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0x7b/0x90  __kmalloc_noprof+0x2c1/0x790  neigh_alloc+0x6af/0x8f0  ___neigh_create+0x63/0xe90  mlxsw_sp_nexthop_neigh_init+0x430/0x7e0  mlxsw_sp_nexthop_type_init+0x212/0x960  mlxsw_sp_nexthop6_group_info_init.constprop.0+0x81f/0x1280  mlxsw_sp_nexthop6_group_get+0x392/0x6a0  mlxsw_sp_fib6_entry_create+0x46a/0xfd0  mlxsw_sp_router_fib6_replace+0x1ed/0x5f0  mlxsw_sp_router_fib6_event_work+0x10a/0x2a0  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20  Freed by task 154:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_save_free_info+0x3b/0x60  __kasan_slab_free+0x43/0x70  kmem_cache_free_bulk.part.0+0x1eb/0x5e0  kvfree_rcu_bulk+0x1f2/0x260  kfree_rcu_work+0x130/0x1b0  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20  Last potentially related work creation:  kasan_save_stack+0x30/0x50  kasan_record_aux_stack+0x8c/0xa0  kvfree_call_rcu+0x93/0x5b0  mlxsw_sp_router_neigh_event_work+0x67d/0x860  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71066",
                        "url": "https://ubuntu.com/security/CVE-2025-71066",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: ets: Always remove class from active list before deleting in ets_qdisc_change  zdi-disclosures@trendmicro.com says:  The vulnerability is a race condition between `ets_qdisc_dequeue` and `ets_qdisc_change`.  It leads to UAF on `struct Qdisc` object. Attacker requires the capability to create new user and network namespace in order to trigger the bug. See my additional commentary at the end of the analysis.  Analysis:  static int ets_qdisc_change(struct Qdisc *sch, struct nlattr *opt,                           struct netlink_ext_ack *extack) { ...        // (1) this lock is preventing .change handler (`ets_qdisc_change`)       //to race with .dequeue handler (`ets_qdisc_dequeue`)       sch_tree_lock(sch);        for (i = nbands; i < oldbands; i++) {               if (i >= q->nstrict && q->classes[i].qdisc->q.qlen)                       list_del_init(&q->classes[i].alist);               qdisc_purge_queue(q->classes[i].qdisc);       }        WRITE_ONCE(q->nbands, nbands);       for (i = nstrict; i < q->nstrict; i++) {               if (q->classes[i].qdisc->q.qlen) { \t\t      // (2) the class is added to the q->active                       list_add_tail(&q->classes[i].alist, &q->active);                       q->classes[i].deficit = quanta[i];               }       }       WRITE_ONCE(q->nstrict, nstrict);       memcpy(q->prio2band, priomap, sizeof(priomap));        for (i = 0; i < q->nbands; i++)               WRITE_ONCE(q->classes[i].quantum, quanta[i]);        for (i = oldbands; i < q->nbands; i++) {               q->classes[i].qdisc = queues[i];               if (q->classes[i].qdisc != &noop_qdisc)                       qdisc_hash_add(q->classes[i].qdisc, true);       }        // (3) the qdisc is unlocked, now dequeue can be called in parallel       // to the rest of .change handler       sch_tree_unlock(sch);        ets_offload_change(sch);       for (i = q->nbands; i < oldbands; i++) { \t      // (4) we're reducing the refcount for our class's qdisc and \t      //  freeing it               qdisc_put(q->classes[i].qdisc); \t      // (5) If we call .dequeue between (4) and (5), we will have \t      // a strong UAF and we can control RIP               q->classes[i].qdisc = NULL;               WRITE_ONCE(q->classes[i].quantum, 0);               q->classes[i].deficit = 0;               gnet_stats_basic_sync_init(&q->classes[i].bstats);               memset(&q->classes[i].qstats, 0, sizeof(q->classes[i].qstats));       }       return 0; }  Comment: This happens because some of the classes have their qdiscs assigned to NULL, but remain in the active list. This commit fixes this issue by always removing the class from the active list before deleting and freeing its associated qdisc  Reproducer Steps (trimmed version of what was sent by zdi-disclosures@trendmicro.com)  ``` DEV=\"${DEV:-lo}\" ROOT_HANDLE=\"${ROOT_HANDLE:-1:}\" BAND2_HANDLE=\"${BAND2_HANDLE:-20:}\"   # child under 1:2 PING_BYTES=\"${PING_BYTES:-48}\" PING_COUNT=\"${PING_COUNT:-200000}\" PING_DST=\"${PING_DST:-127.0.0.1}\"  SLOW_TBF_RATE=\"${SLOW_TBF_RATE:-8bit}\" SLOW_TBF_BURST=\"${SLOW_TBF_BURST:-100b}\" SLOW_TBF_LAT=\"${SLOW_TBF_LAT:-1s}\"  cleanup() {   tc qdisc del dev \"$DEV\" root 2>/dev/null } trap cleanup EXIT  ip link set \"$DEV\" up  tc qdisc del dev \"$DEV\" root 2>/dev/null || true  tc qdisc add dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 2  tc qdisc add dev \"$DEV\" parent 1:2 handle \"$BAND2_HANDLE\" \\   tbf rate \"$SLOW_TBF_RATE\" burst \"$SLOW_TBF_BURST\" latency \"$SLOW_TBF_LAT\"  tc filter add dev \"$DEV\" parent 1: protocol all prio 1 u32 match u32 0 0 flowid 1:2 tc -s qdisc ls dev $DEV  ping -I \"$DEV\" -f -c \"$PING_COUNT\" -s \"$PING_BYTES\" -W 0.001 \"$PING_DST\" \\   >/dev/null 2>&1 & tc qdisc change dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 0 tc qdisc change dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 2 tc -s qdisc ls dev $DEV tc qdisc del dev \"$DEV\" parent ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68787",
                        "url": "https://ubuntu.com/security/CVE-2025-68787",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netrom: Fix memory leak in nr_sendmsg()  syzbot reported a memory leak [1].  When function sock_alloc_send_skb() return NULL in nr_output(), the original skb is not freed, which was allocated in nr_sendmsg(). Fix this by freeing it before return.  [1] BUG: memory leak unreferenced object 0xffff888129f35500 (size 240):   comm \"syz.0.17\", pid 6119, jiffies 4294944652   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     00 00 00 00 00 00 00 00 00 10 52 28 81 88 ff ff  ..........R(....   backtrace (crc 1456a3e4):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4983 [inline]     slab_alloc_node mm/slub.c:5288 [inline]     kmem_cache_alloc_node_noprof+0x36f/0x5e0 mm/slub.c:5340     __alloc_skb+0x203/0x240 net/core/skbuff.c:660     alloc_skb include/linux/skbuff.h:1383 [inline]     alloc_skb_with_frags+0x69/0x3f0 net/core/skbuff.c:6671     sock_alloc_send_pskb+0x379/0x3e0 net/core/sock.c:2965     sock_alloc_send_skb include/net/sock.h:1859 [inline]     nr_sendmsg+0x287/0x450 net/netrom/af_netrom.c:1105     sock_sendmsg_nosec net/socket.c:727 [inline]     __sock_sendmsg net/socket.c:742 [inline]     sock_write_iter+0x293/0x2a0 net/socket.c:1195     new_sync_write fs/read_write.c:593 [inline]     vfs_write+0x45d/0x710 fs/read_write.c:686     ksys_write+0x143/0x170 fs/read_write.c:738     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]     do_syscall_64+0xa4/0xfa0 arch/x86/entry/syscall_64.c:94     entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68767",
                        "url": "https://ubuntu.com/security/CVE-2025-68767",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hfsplus: Verify inode mode when loading from disk  syzbot is reporting that S_IFMT bits of inode->i_mode can become bogus when the S_IFMT bits of the 16bits \"mode\" field loaded from disk are corrupted.  According to [1], the permissions field was treated as reserved in Mac OS 8 and 9. According to [2], the reserved field was explicitly initialized with 0, and that field must remain 0 as long as reserved. Therefore, when the \"mode\" field is not 0 (i.e. no longer reserved), the file must be S_IFDIR if dir == 1, and the file must be one of S_IFREG/S_IFLNK/S_IFCHR/ S_IFBLK/S_IFIFO/S_IFSOCK if dir == 0.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68774",
                        "url": "https://ubuntu.com/security/CVE-2025-68774",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create  When sync() and link() are called concurrently, both threads may enter hfs_bnode_find() without finding the node in the hash table and proceed to create it.  Thread A:   hfsplus_write_inode()     -> hfsplus_write_system_inode()       -> hfs_btree_write()         -> hfs_bnode_find(tree, 0)           -> __hfs_bnode_create(tree, 0)  Thread B:   hfsplus_create_cat()     -> hfs_brec_insert()       -> hfs_bnode_split()         -> hfs_bmap_alloc()           -> hfs_bnode_find(tree, 0)             -> __hfs_bnode_create(tree, 0)  In this case, thread A creates the bnode, sets refcnt=1, and hashes it. Thread B also tries to create the same bnode, notices it has already been inserted, drops its own instance, and uses the hashed one without getting the node.  ```  \tnode2 = hfs_bnode_findhash(tree, cnid); \tif (!node2) {                                 <- Thread A \t\thash = hfs_bnode_hash(cnid); \t\tnode->next_hash = tree->node_hash[hash]; \t\ttree->node_hash[hash] = node; \t\ttree->node_hash_cnt++; \t} else {                                      <- Thread B \t\tspin_unlock(&tree->hash_lock); \t\tkfree(node); \t\twait_event(node2->lock_wq, \t\t\t!test_bit(HFS_BNODE_NEW, &node2->flags)); \t\treturn node2; \t} ```  However, hfs_bnode_find() requires each call to take a reference. Here both threads end up setting refcnt=1. When they later put the node, this triggers:  BUG_ON(!atomic_read(&node->refcnt))  In this scenario, Thread B in fact finds the node in the hash table rather than creating a new one, and thus must take a reference.  Fix this by calling hfs_bnode_get() when reusing a bnode newly created by another thread to ensure the refcount is updated correctly.  A similar bug was fixed in HFS long ago in commit a9dc087fd3c4 (\"fix missing hfs_bnode_get() in __hfs_bnode_create\") but the same issue remained in HFS+ until now.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71118",
                        "url": "https://ubuntu.com/security/CVE-2025-71118",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ACPICA: Avoid walking the Namespace if start_node is NULL  Although commit 0c9992315e73 (\"ACPICA: Avoid walking the ACPI Namespace if it is not there\") fixed the situation when both start_node and acpi_gbl_root_node are NULL, the Linux kernel mainline now still crashed on Honor Magicbook 14 Pro [1].  That happens due to the access to the member of parent_node in acpi_ns_get_next_node().  The NULL pointer dereference will always happen, no matter whether or not the start_node is equal to ACPI_ROOT_OBJECT, so move the check of start_node being NULL out of the if block.  Unfortunately, all the attempts to contact Honor have failed, they refused to provide any technical support for Linux.  The bad DSDT table's dump could be found on GitHub [2].  DMI: HONOR FMB-P/FMB-P-PCB, BIOS 1.13 05/08/2025  [ rjw: Subject adjustment, changelog edits ]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68780",
                        "url": "https://ubuntu.com/security/CVE-2025-68780",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sched/deadline: only set free_cpus for online runqueues  Commit 16b269436b72 (\"sched/deadline: Modify cpudl::free_cpus to reflect rd->online\") introduced the cpudl_set/clear_freecpu functions to allow the cpu_dl::free_cpus mask to be manipulated by the deadline scheduler class rq_on/offline callbacks so the mask would also reflect this state.  Commit 9659e1eeee28 (\"sched/deadline: Remove cpu_active_mask from cpudl_find()\") removed the check of the cpu_active_mask to save some processing on the premise that the cpudl::free_cpus mask already reflected the runqueue online state.  Unfortunately, there are cases where it is possible for the cpudl_clear function to set the free_cpus bit for a CPU when the deadline runqueue is offline. When this occurs while a CPU is connected to the default root domain the flag may retain the bad state after the CPU has been unplugged. Later, a different CPU that is transitioning through the default root domain may push a deadline task to the powered down CPU when cpudl_find sees its free_cpus bit is set. If this happens the task will not have the opportunity to run.  One example is outlined here: https://lore.kernel.org/lkml/20250110233010.2339521-1-opendmb@gmail.com  Another occurs when the last deadline task is migrated from a CPU that has an offlined runqueue. The dequeue_task member of the deadline scheduler class will eventually call cpudl_clear and set the free_cpus bit for the CPU.  This commit modifies the cpudl_clear function to be aware of the online state of the deadline runqueue so that the free_cpus mask can be updated appropriately.  It is no longer necessary to manage the mask outside of the cpudl_set/clear functions so the cpudl_set/clear_freecpu functions are removed. In addition, since the free_cpus mask is now only updated under the cpudl lock the code was changed to use the non-atomic __cpumask functions.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68346",
                        "url": "https://ubuntu.com/security/CVE-2025-68346",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: dice: fix buffer overflow in detect_stream_formats()  The function detect_stream_formats() reads the stream_count value directly from a FireWire device without validating it. This can lead to out-of-bounds writes when a malicious device provides a stream_count value greater than MAX_STREAMS.  Fix by applying the same validation to both TX and RX stream counts in detect_stream_formats().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68764",
                        "url": "https://ubuntu.com/security/CVE-2025-68764",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFS: Automounted filesystems should inherit ro,noexec,nodev,sync flags  When a filesystem is being automounted, it needs to preserve the user-set superblock mount options, such as the \"ro\" flag.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68349",
                        "url": "https://ubuntu.com/security/CVE-2025-68349",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSv4/pNFS: Clear NFS_INO_LAYOUTCOMMIT in pnfs_mark_layout_stateid_invalid  Fixes a crash when layout is null during this call stack:  write_inode     -> nfs4_write_inode         -> pnfs_layoutcommit_inode  pnfs_set_layoutcommit relies on the lseg refcount to keep the layout around. Need to clear NFS_INO_LAYOUTCOMMIT otherwise we might attempt to reference a null layout.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68325",
                        "url": "https://ubuntu.com/security/CVE-2025-68325",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop  In cake_drop(), qdisc_tree_reduce_backlog() is used to update the qlen and backlog of the qdisc hierarchy. Its caller, cake_enqueue(), assumes that the parent qdisc will enqueue the current packet. However, this assumption breaks when cake_enqueue() returns NET_XMIT_CN: the parent qdisc stops enqueuing current packet, leaving the tree qlen/backlog accounting inconsistent. This mismatch can lead to a NULL dereference (e.g., when the parent Qdisc is qfq_qdisc).  This patch computes the qlen/backlog delta in a more robust way by observing the difference before and after the series of cake_drop() calls, and then compensates the qdisc tree accounting if cake_enqueue() returns NET_XMIT_CN.  To ensure correct compensation when ACK thinning is enabled, a new variable is introduced to keep qlen unchanged.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-18 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68354",
                        "url": "https://ubuntu.com/security/CVE-2025-68354",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regulator: core: Protect regulator_supply_alias_list with regulator_list_mutex  regulator_supply_alias_list was accessed without any locking in regulator_supply_alias(), regulator_register_supply_alias(), and regulator_unregister_supply_alias(). Concurrent registration, unregistration and lookups can race, leading to:  1 use-after-free if an alias entry is removed while being read, 2 duplicate entries when two threads register the same alias, 3 inconsistent alias mappings observed by consumers.  Protect all traversals, insertions and deletions on regulator_supply_alias_list with the existing regulator_list_mutex.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68758",
                        "url": "https://ubuntu.com/security/CVE-2025-68758",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  backlight: led-bl: Add devlink to supplier LEDs  LED Backlight is a consumer of one or multiple LED class devices, but devlink is currently unable to create correct supplier-producer links when the supplier is a class device. It creates instead a link where the supplier is the parent of the expected device.  One consequence is that removal order is not correctly enforced.  Issues happen for example with the following sections in a device tree overlay:      // An LED driver chip     pca9632@62 {         compatible = \"nxp,pca9632\";         reg = <0x62>;  \t// ...          addon_led_pwm: led-pwm@3 {             reg = <3>;             label = \"addon:led:pwm\";         };     };      backlight-addon {         compatible = \"led-backlight\";         leds = <&addon_led_pwm>;         brightness-levels = <255>;         default-brightness-level = <255>;     };  In this example, the devlink should be created between the backlight-addon (consumer) and the pca9632@62 (supplier). Instead it is created between the backlight-addon (consumer) and the parent of the pca9632@62, which is typically the I2C bus adapter.  On removal of the above overlay, the LED driver can be removed before the backlight device, resulting in:      Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010     ...     Call trace:      led_put+0xe0/0x140      devm_led_release+0x6c/0x98  Another way to reproduce the bug without any device tree overlays is unbinding the LED class device (pca9632@62) before unbinding the consumer (backlight-addon):    echo 11-0062 >/sys/bus/i2c/drivers/leds-pca963x/unbind   echo ...backlight-dock >/sys/bus/platform/drivers/led-backlight/unbind  Fix by adding a devlink between the consuming led-backlight device and the supplying LED device, as other drivers and subsystems do as well.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68765",
                        "url": "https://ubuntu.com/security/CVE-2025-68765",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()  In mt7615_mcu_wtbl_sta_add(), an skb sskb is allocated. If the subsequent call to mt76_connac_mcu_alloc_wtbl_req() fails, the function returns an error without freeing sskb, leading to a memory leak.  Fix this by calling dev_kfree_skb() on sskb in the error handling path to ensure it is properly released.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68740",
                        "url": "https://ubuntu.com/security/CVE-2025-68740",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ima: Handle error code returned by ima_filter_rule_match()  In ima_match_rules(), if ima_filter_rule_match() returns -ENOENT due to the rule being NULL, the function incorrectly skips the 'if (!rc)' check and sets 'result = true'. The LSM rule is considered a match, causing extra files to be measured by IMA.  This issue can be reproduced in the following scenario: After unloading the SELinux policy module via 'semodule -d', if an IMA measurement is triggered before ima_lsm_rules is updated, in ima_match_rules(), the first call to ima_filter_rule_match() returns -ESTALE. This causes the code to enter the 'if (rc == -ESTALE && !rule_reinitialized)' block, perform ima_lsm_copy_rule() and retry. In ima_lsm_copy_rule(), since the SELinux module has been removed, the rule becomes NULL, and the second call to ima_filter_rule_match() returns -ENOENT. This bypasses the 'if (!rc)' check and results in a false match.  Call trace:   selinux_audit_rule_match+0x310/0x3b8   security_audit_rule_match+0x60/0xa0   ima_match_rules+0x2e4/0x4a0   ima_match_policy+0x9c/0x1e8   ima_get_action+0x48/0x60   process_measurement+0xf8/0xa98   ima_bprm_check+0x98/0xd8   security_bprm_check+0x5c/0x78   search_binary_handler+0x6c/0x318   exec_binprm+0x58/0x1b8   bprm_execve+0xb8/0x130   do_execveat_common.isra.0+0x1a8/0x258   __arm64_sys_execve+0x48/0x68   invoke_syscall+0x50/0x128   el0_svc_common.constprop.0+0xc8/0xf0   do_el0_svc+0x24/0x38   el0_svc+0x44/0x200   el0t_64_sync_handler+0x100/0x130   el0t_64_sync+0x3c8/0x3d0  Fix this by changing 'if (!rc)' to 'if (rc <= 0)' to ensure that error codes like -ENOENT do not bypass the check and accidentally result in a successful match.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68362",
                        "url": "https://ubuntu.com/security/CVE-2025-68362",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rtl818x: rtl8187: Fix potential buffer underflow in rtl8187_rx_cb()  The rtl8187_rx_cb() calculates the rx descriptor header address by subtracting its size from the skb tail pointer. However, it does not validate if the received packet (skb->len from urb->actual_length) is large enough to contain this header.  If a truncated packet is received, this will lead to a buffer underflow, reading memory before the start of the skb data area, and causing a kernel panic.  Add length checks for both rtl8187 and rtl8187b descriptor headers before attempting to access them, dropping the packet cleanly if the check fails.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68759",
                        "url": "https://ubuntu.com/security/CVE-2025-68759",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()  In rtl8180_init_rx_ring(), memory is allocated for skb packets and DMA allocations in a loop. When an allocation fails, the previously successful allocations are not freed on exit.  Fix that by jumping to err_free_rings label on error, which calls rtl8180_free_rx_ring() to free the allocations. Remove the free of rx_ring in rtl8180_init_rx_ring() error path, and set the freed priv->rx_buf entry to null, to avoid double free.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68364",
                        "url": "https://ubuntu.com/security/CVE-2025-68364",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ocfs2: relax BUG() to ocfs2_error() in __ocfs2_move_extent()  In '__ocfs2_move_extent()', relax 'BUG()' to 'ocfs2_error()' just to avoid crashing the whole kernel due to a filesystem corruption.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68366",
                        "url": "https://ubuntu.com/security/CVE-2025-68366",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nbd: defer config unlock in nbd_genl_connect  There is one use-after-free warning when running NBD_CMD_CONNECT and NBD_CLEAR_SOCK:  nbd_genl_connect   nbd_alloc_and_init_config // config_refs=1   nbd_start_device // config_refs=2   set NBD_RT_HAS_CONFIG_REF\t\t\topen nbd // config_refs=3   recv_work done // config_refs=2 \t\t\t\t\t\tNBD_CLEAR_SOCK // config_refs=1 \t\t\t\t\t\tclose nbd // config_refs=0   refcount_inc -> uaf  ------------[ cut here ]------------ refcount_t: addition on 0; use-after-free. WARNING: CPU: 24 PID: 1014 at lib/refcount.c:25 refcount_warn_saturate+0x12e/0x290  nbd_genl_connect+0x16d0/0x1ab0  genl_family_rcv_msg_doit+0x1f3/0x310  genl_rcv_msg+0x44a/0x790  The issue can be easily reproduced by adding a small delay before refcount_inc(&nbd->config_refs) in nbd_genl_connect():          mutex_unlock(&nbd->config_lock);         if (!ret) {                 set_bit(NBD_RT_HAS_CONFIG_REF, &config->runtime_flags); +               printk(\"before sleep\\n\"); +               mdelay(5 * 1000); +               printk(\"after sleep\\n\");                 refcount_inc(&nbd->config_refs);                 nbd_connect_reply(info, nbd->index);         }",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68367",
                        "url": "https://ubuntu.com/security/CVE-2025-68367",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macintosh/mac_hid: fix race condition in mac_hid_toggle_emumouse  The following warning appears when running syzkaller, and this issue also exists in the mainline code.   ------------[ cut here ]------------  list_add double add: new=ffffffffa57eee28, prev=ffffffffa57eee28, next=ffffffffa5e63100.  WARNING: CPU: 0 PID: 1491 at lib/list_debug.c:35 __list_add_valid_or_report+0xf7/0x130  Modules linked in:  CPU: 0 PID: 1491 Comm: syz.1.28 Not tainted 6.6.0+ #3  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014  RIP: 0010:__list_add_valid_or_report+0xf7/0x130  RSP: 0018:ff1100010dfb7b78 EFLAGS: 00010282  RAX: 0000000000000000 RBX: ffffffffa57eee18 RCX: ffffffff97fc9817  RDX: 0000000000040000 RSI: ffa0000002383000 RDI: 0000000000000001  RBP: ffffffffa57eee28 R08: 0000000000000001 R09: ffe21c0021bf6f2c  R10: 0000000000000001 R11: 6464615f7473696c R12: ffffffffa5e63100  R13: ffffffffa57eee28 R14: ffffffffa57eee28 R15: ff1100010dfb7d48  FS:  00007fb14398b640(0000) GS:ff11000119600000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000000 CR3: 000000010d096005 CR4: 0000000000773ef0  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000  DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400  PKRU: 80000000  Call Trace:   <TASK>   input_register_handler+0xb3/0x210   mac_hid_start_emulation+0x1c5/0x290   mac_hid_toggle_emumouse+0x20a/0x240   proc_sys_call_handler+0x4c2/0x6e0   new_sync_write+0x1b1/0x2d0   vfs_write+0x709/0x950   ksys_write+0x12a/0x250   do_syscall_64+0x5a/0x110   entry_SYSCALL_64_after_hwframe+0x78/0xe2  The WARNING occurs when two processes concurrently write to the mac-hid emulation sysctl, causing a race condition in mac_hid_toggle_emumouse(). Both processes read old_val=0, then both try to register the input handler, leading to a double list_add of the same handler.    CPU0                             CPU1   -------------------------        -------------------------   vfs_write() //write 1            vfs_write()  //write 1     proc_sys_write()                 proc_sys_write()       mac_hid_toggle_emumouse()          mac_hid_toggle_emumouse()         old_val = *valp // old_val=0                                            old_val = *valp // old_val=0                                            mutex_lock_killable()                                            proc_dointvec() // *valp=1                                            mac_hid_start_emulation()                                              input_register_handler()                                            mutex_unlock()         mutex_lock_killable()         proc_dointvec()         mac_hid_start_emulation()           input_register_handler() //Trigger Warning         mutex_unlock()  Fix this by moving the old_val read inside the mutex lock region.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68372",
                        "url": "https://ubuntu.com/security/CVE-2025-68372",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nbd: defer config put in recv_work  There is one uaf issue in recv_work when running NBD_CLEAR_SOCK and NBD_CMD_RECONFIGURE:   nbd_genl_connect     // conf_ref=2 (connect and recv_work A)   nbd_open\t       // conf_ref=3   recv_work A done     // conf_ref=2   NBD_CLEAR_SOCK       // conf_ref=1   nbd_genl_reconfigure // conf_ref=2 (trigger recv_work B)   close nbd\t       // conf_ref=1   recv_work B     config_put         // conf_ref=0     atomic_dec(&config->recv_threads); -> UAF  Or only running NBD_CLEAR_SOCK:   nbd_genl_connect   // conf_ref=2   nbd_open \t     // conf_ref=3   NBD_CLEAR_SOCK     // conf_ref=2   close nbd     nbd_release       config_put     // conf_ref=1   recv_work     config_put \t     // conf_ref=0     atomic_dec(&config->recv_threads); -> UAF  Commit 87aac3a80af5 (\"nbd: call nbd_config_put() before notifying the waiter\") moved nbd_config_put() to run before waking up the waiter in recv_work, in order to ensure that nbd_start_device_ioctl() would not be woken up while nbd->task_recv was still uncleared.  However, in nbd_start_device_ioctl(), after being woken up it explicitly calls flush_workqueue() to make sure all current works are finished. Therefore, there is no need to move the config put ahead of the wakeup.  Move nbd_config_put() to the end of recv_work, so that the reference is held for the whole lifetime of the worker thread. This makes sure the config cannot be freed while recv_work is still running, even if clear + reconfigure interleave.  In addition, we don't need to worry about recv_work dropping the last nbd_put (which causes deadlock):  path A (netlink with NBD_CFLAG_DESTROY_ON_DISCONNECT):   connect  // nbd_refs=1 (trigger recv_work)   open nbd // nbd_refs=2   NBD_CLEAR_SOCK   close nbd     nbd_release       nbd_disconnect_and_put         flush_workqueue // recv_work done       nbd_config_put         nbd_put // nbd_refs=1       nbd_put // nbd_refs=0         queue_work  path B (netlink without NBD_CFLAG_DESTROY_ON_DISCONNECT):   connect  // nbd_refs=2 (trigger recv_work)   open nbd // nbd_refs=3   NBD_CLEAR_SOCK // conf_refs=2   close nbd     nbd_release       nbd_config_put // conf_refs=1       nbd_put // nbd_refs=2   recv_work done // conf_refs=0, nbd_refs=1   rmmod // nbd_refs=0  Depends-on: e2daec488c57 (\"nbd: Fix hungtask when nbd_config_put\")",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68746",
                        "url": "https://ubuntu.com/security/CVE-2025-68746",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: tegra210-quad: Fix timeout handling  When the CPU that the QSPI interrupt handler runs on (typically CPU 0) is excessively busy, it can lead to rare cases of the IRQ thread not running before the transfer timeout is reached.  While handling the timeouts, any pending transfers are cleaned up and the message that they correspond to is marked as failed, which leaves the curr_xfer field pointing at stale memory.  To avoid this, clear curr_xfer to NULL upon timeout and check for this condition when the IRQ thread is finally run.  While at it, also make sure to clear interrupts on failure so that new interrupts can be run.  A better, more involved, fix would move the interrupt clearing into a hard IRQ handler. Ideally we would also want to signal that the IRQ thread no longer needs to be run after the timeout is hit to avoid the extra check for a valid transfer.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68724",
                        "url": "https://ubuntu.com/security/CVE-2025-68724",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: asymmetric_keys - prevent overflow in asymmetric_key_generate_id  Use check_add_overflow() to guard against potential integer overflows when adding the binary blob lengths and the size of an asymmetric_key_id structure and return ERR_PTR(-EOVERFLOW) accordingly. This prevents a possible buffer overflow when copying data from potentially malicious X.509 certificate fields that can be arbitrarily large, such as ASN.1 INTEGER serial numbers, issuer names, etc.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68727",
                        "url": "https://ubuntu.com/security/CVE-2025-68727",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: Fix uninit buffer allocated by __getname()  Fix uninit errors caused after buffer allocation given to 'de'; by initializing the buffer with zeroes. The fix was found by using KMSAN.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68728",
                        "url": "https://ubuntu.com/security/CVE-2025-68728",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: fix uninit memory after failed mi_read in mi_format_new  Fix a KMSAN un-init bug found by syzkaller.  ntfs_get_bh() expects a buffer from sb_getblk(), that buffer may not be uptodate. We do not bring the buffer uptodate before setting it as uptodate. If the buffer were to not be uptodate, it could mean adding a buffer with un-init data to the mi record. Attempting to load that record will trigger KMSAN.  Avoid this by setting the buffer as uptodate, if it’s not already, by overwriting it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68757",
                        "url": "https://ubuntu.com/security/CVE-2025-68757",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vgem-fence: Fix potential deadlock on release  A timer that expires a vgem fence automatically in 10 seconds is now released with timer_delete_sync() from fence->ops.release() called on last dma_fence_put().  In some scenarios, it can run in IRQ context, which is not safe unless TIMER_IRQSAFE is used.  One potentially risky scenario was demonstrated in Intel DRM CI trybot, BAT run on machine bat-adlp-6, while working on new IGT subtests syncobj_timeline@stress-* as user space replacements of some problematic test cases of a dma-fence-chain selftest [1].  [117.004338] ================================ [117.004340] WARNING: inconsistent lock state [117.004342] 6.17.0-rc7-CI_DRM_17270-g7644974e648c+ #1 Tainted: G S   U [117.004346] -------------------------------- [117.004347] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. [117.004349] swapper/0/0 [HC1[1]:SC1[1]:HE0:SE0] takes: [117.004352] ffff888138f86aa8 ((&fence->timer)){?.-.}-{0:0}, at: __timer_delete_sync+0x4b/0x190 [117.004361] {HARDIRQ-ON-W} state was registered at: [117.004363]   lock_acquire+0xc4/0x2e0 [117.004366]   call_timer_fn+0x80/0x2a0 [117.004368]   __run_timers+0x231/0x310 [117.004370]   run_timer_softirq+0x76/0xe0 [117.004372]   handle_softirqs+0xd4/0x4d0 [117.004375]   __irq_exit_rcu+0x13f/0x160 [117.004377]   irq_exit_rcu+0xe/0x20 [117.004379]   sysvec_apic_timer_interrupt+0xa0/0xc0 [117.004382]   asm_sysvec_apic_timer_interrupt+0x1b/0x20 [117.004385]   cpuidle_enter_state+0x12b/0x8a0 [117.004388]   cpuidle_enter+0x2e/0x50 [117.004393]   call_cpuidle+0x22/0x60 [117.004395]   do_idle+0x1fd/0x260 [117.004398]   cpu_startup_entry+0x29/0x30 [117.004401]   start_secondary+0x12d/0x160 [117.004404]   common_startup_64+0x13e/0x141 [117.004407] irq event stamp: 2282669 [117.004409] hardirqs last  enabled at (2282668): [<ffffffff8289db71>] _raw_spin_unlock_irqrestore+0x51/0x80 [117.004414] hardirqs last disabled at (2282669): [<ffffffff82882021>] sysvec_irq_work+0x11/0xc0 [117.004419] softirqs last  enabled at (2254702): [<ffffffff8289fd00>] __do_softirq+0x10/0x18 [117.004423] softirqs last disabled at (2254725): [<ffffffff813d4ddf>] __irq_exit_rcu+0x13f/0x160 [117.004426] other info that might help us debug this: [117.004429]  Possible unsafe locking scenario: [117.004432]        CPU0 [117.004433]        ---- [117.004434]   lock((&fence->timer)); [117.004436]   <Interrupt> [117.004438]     lock((&fence->timer)); [117.004440]  *** DEADLOCK *** [117.004443] 1 lock held by swapper/0/0: [117.004445]  #0: ffffc90000003d50 ((&fence->timer)){?.-.}-{0:0}, at: call_timer_fn+0x7a/0x2a0 [117.004450] stack backtrace: [117.004453] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G S   U             6.17.0-rc7-CI_DRM_17270-g7644974e648c+ #1 PREEMPT(voluntary) [117.004455] Tainted: [S]=CPU_OUT_OF_SPEC, [U]=USER [117.004455] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR4 RVP, BIOS RPLPFWI1.R00.4035.A00.2301200723 01/20/2023 [117.004456] Call Trace: [117.004456]  <IRQ> [117.004457]  dump_stack_lvl+0x91/0xf0 [117.004460]  dump_stack+0x10/0x20 [117.004461]  print_usage_bug.part.0+0x260/0x360 [117.004463]  mark_lock+0x76e/0x9c0 [117.004465]  ? register_lock_class+0x48/0x4a0 [117.004467]  __lock_acquire+0xbc3/0x2860 [117.004469]  lock_acquire+0xc4/0x2e0 [117.004470]  ? __timer_delete_sync+0x4b/0x190 [117.004472]  ? __timer_delete_sync+0x4b/0x190 [117.004473]  __timer_delete_sync+0x68/0x190 [117.004474]  ? __timer_delete_sync+0x4b/0x190 [117.004475]  timer_delete_sync+0x10/0x20 [117.004476]  vgem_fence_release+0x19/0x30 [vgem] [117.004478]  dma_fence_release+0xc1/0x3b0 [117.004480]  ? dma_fence_release+0xa1/0x3b0 [117.004481]  dma_fence_chain_release+0xe7/0x130 [117.004483]  dma_fence_release+0xc1/0x3b0 [117.004484]  ? _raw_spin_unlock_irqrestore+0x27/0x80 [117.004485]  dma_fence_chain_irq_work+0x59/0x80 [117.004487]  irq_work_single+0x75/0xa0 [117.004490]  irq_work_r ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68732",
                        "url": "https://ubuntu.com/security/CVE-2025-68732",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gpu: host1x: Fix race in syncpt alloc/free  Fix race condition between host1x_syncpt_alloc() and host1x_syncpt_put() by using kref_put_mutex() instead of kref_put() + manual mutex locking.  This ensures no thread can acquire the syncpt_mutex after the refcount drops to zero but before syncpt_release acquires it. This prevents races where syncpoints could be allocated while still being cleaned up from a previous release.  Remove explicit mutex locking in syncpt_release as kref_put_mutex() handles this atomically.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68733",
                        "url": "https://ubuntu.com/security/CVE-2025-68733",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smack: fix bug: unprivileged task can create labels  If an unprivileged task is allowed to relabel itself (/smack/relabel-self is not empty), it can freely create new labels by writing their names into own /proc/PID/attr/smack/current  This occurs because do_setattr() imports the provided label in advance, before checking \"relabel-self\" list.  This change ensures that the \"relabel-self\" list is checked before importing the label.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68254",
                        "url": "https://ubuntu.com/security/CVE-2025-68254",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix out-of-bounds read in OnBeacon ESR IE parsing  The Extended Supported Rates (ESR) IE handling in OnBeacon accessed *(p + 1 + ielen) and *(p + 2 + ielen) without verifying that these offsets lie within the received frame buffer. A malformed beacon with an ESR IE positioned at the end of the buffer could cause an out-of-bounds read, potentially triggering a kernel panic.  Add a boundary check to ensure that the ESR IE body and the subsequent bytes are within the limits of the frame before attempting to access them.  This prevents OOB reads caused by malformed beacon frames.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68255",
                        "url": "https://ubuntu.com/security/CVE-2025-68255",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix stack buffer overflow in OnAssocReq IE parsing  The Supported Rates IE length from an incoming Association Request frame was used directly as the memcpy() length when copying into a fixed-size 16-byte stack buffer (supportRate). A malicious station can advertise an IE length larger than 16 bytes, causing a stack buffer overflow.  Clamp ie_len to the buffer size before copying the Supported Rates IE, and correct the bounds check when merging Extended Supported Rates to prevent a second potential overflow.  This prevents kernel stack corruption triggered by malformed association requests.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68257",
                        "url": "https://ubuntu.com/security/CVE-2025-68257",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: check device's attached status in compat ioctls  Syzbot identified an issue [1] that crashes kernel, seemingly due to unexistent callback dev->get_valid_routes(). By all means, this should not occur as said callback must always be set to get_zero_valid_routes() in __comedi_device_postconfig().  As the crash seems to appear exclusively in i386 kernels, at least, judging from [1] reports, the blame lies with compat versions of standard IOCTL handlers. Several of them are modified and do not use comedi_unlocked_ioctl(). While functionality of these ioctls essentially copy their original versions, they do not have required sanity check for device's attached status. This, in turn, leads to a possibility of calling select IOCTLs on a device that has not been properly setup, even via COMEDI_DEVCONFIG.  Doing so on unconfigured devices means that several crucial steps are missed, for instance, specifying dev->get_valid_routes() callback.  Fix this somewhat crudely by ensuring device's attached status before performing any ioctls, improving logic consistency between modern and compat functions.  [1] Syzbot report: BUG: kernel NULL pointer dereference, address: 0000000000000000 ... CR2: ffffffffffffffd6 CR3: 000000006c717000 CR4: 0000000000352ef0 Call Trace:  <TASK>  get_valid_routes drivers/comedi/comedi_fops.c:1322 [inline]  parse_insn+0x78c/0x1970 drivers/comedi/comedi_fops.c:1401  do_insnlist_ioctl+0x272/0x700 drivers/comedi/comedi_fops.c:1594  compat_insnlist drivers/comedi/comedi_fops.c:3208 [inline]  comedi_compat_ioctl+0x810/0x990 drivers/comedi/comedi_fops.c:3273  __do_compat_sys_ioctl fs/ioctl.c:695 [inline]  __se_compat_sys_ioctl fs/ioctl.c:638 [inline]  __ia32_compat_sys_ioctl+0x242/0x370 fs/ioctl.c:638  do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline] ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68258",
                        "url": "https://ubuntu.com/security/CVE-2025-68258",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: multiq3: sanitize config options in multiq3_attach()  Syzbot identified an issue [1] in multiq3_attach() that induces a task timeout due to open() or COMEDI_DEVCONFIG ioctl operations, specifically, in the case of multiq3 driver.  This problem arose when syzkaller managed to craft weird configuration options used to specify the number of channels in encoder subdevice. If a particularly great number is passed to s->n_chan in multiq3_attach() via it->options[2], then multiple calls to multiq3_encoder_reset() at the end of driver-specific attach() method will be running for minutes, thus blocking tasks and affected devices as well.  While this issue is most likely not too dangerous for real-life devices, it still makes sense to sanitize configuration inputs. Enable a sensible limit on the number of encoder chips (4 chips max, each with 2 channels) to stop this behaviour from manifesting.  [1] Syzbot crash: INFO: task syz.2.19:6067 blocked for more than 143 seconds. ... Call Trace:  <TASK>  context_switch kernel/sched/core.c:5254 [inline]  __schedule+0x17c4/0x4d60 kernel/sched/core.c:6862  __schedule_loop kernel/sched/core.c:6944 [inline]  schedule+0x165/0x360 kernel/sched/core.c:6959  schedule_preempt_disabled+0x13/0x30 kernel/sched/core.c:7016  __mutex_lock_common kernel/locking/mutex.c:676 [inline]  __mutex_lock+0x7e6/0x1350 kernel/locking/mutex.c:760  comedi_open+0xc0/0x590 drivers/comedi/comedi_fops.c:2868  chrdev_open+0x4cc/0x5e0 fs/char_dev.c:414  do_dentry_open+0x953/0x13f0 fs/open.c:965  vfs_open+0x3b/0x340 fs/open.c:1097 ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68332",
                        "url": "https://ubuntu.com/security/CVE-2025-68332",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: c6xdigio: Fix invalid PNP driver unregistration  The Comedi low-level driver \"c6xdigio\" seems to be for a parallel port connected device.  When the Comedi core calls the driver's Comedi \"attach\" handler `c6xdigio_attach()` to configure a Comedi to use this driver, it tries to enable the parallel port PNP resources by registering a PNP driver with `pnp_register_driver()`, but ignores the return value.  (The `struct pnp_driver` it uses has only the `name` and `id_table` members filled in.)  The driver's Comedi \"detach\" handler `c6xdigio_detach()` unconditionally unregisters the PNP driver with `pnp_unregister_driver()`.  It is possible for `c6xdigio_attach()` to return an error before it calls `pnp_register_driver()` and it is possible for the call to `pnp_register_driver()` to return an error (that is ignored).  In both cases, the driver should not be calling `pnp_unregister_driver()` as it does in `c6xdigio_detach()`.  (Note that `c6xdigio_detach()` will be called by the Comedi core if `c6xdigio_attach()` returns an error, or if the Comedi core decides to detach the Comedi device from the driver for some other reason.)  The unconditional call to `pnp_unregister_driver()` without a previous successful call to `pnp_register_driver()` will cause `driver_unregister()` to issue a warning \"Unexpected driver unregister!\".  This was detected by Syzbot [1].  Also, the PNP driver registration and unregistration should be done at module init and exit time, respectively, not when attaching or detaching Comedi devices to the driver.  (There might be more than one Comedi device being attached to the driver, although that is unlikely.)  Change the driver to do the PNP driver registration at module init time, and the unregistration at module exit time.  Since `c6xdigio_detach()` now only calls `comedi_legacy_detach()`, remove the function and change the Comedi driver \"detach\" handler to `comedi_legacy_detach`.  ------------------------------------------- [1] Syzbot sample crash report: Unexpected driver unregister! WARNING: CPU: 0 PID: 5970 at drivers/base/driver.c:273 driver_unregister drivers/base/driver.c:273 [inline] WARNING: CPU: 0 PID: 5970 at drivers/base/driver.c:273 driver_unregister+0x90/0xb0 drivers/base/driver.c:270 Modules linked in: CPU: 0 UID: 0 PID: 5970 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 RIP: 0010:driver_unregister drivers/base/driver.c:273 [inline] RIP: 0010:driver_unregister+0x90/0xb0 drivers/base/driver.c:270 Code: 48 89 ef e8 c2 e6 82 fc 48 89 df e8 3a 93 ff ff 5b 5d e9 c3 6d d9 fb e8 be 6d d9 fb 90 48 c7 c7 e0 f8 1f 8c e8 51 a2 97 fb 90 <0f> 0b 90 90 5b 5d e9 a5 6d d9 fb e8 e0 f4 41 fc eb 94 e8 d9 f4 41 RSP: 0018:ffffc9000373f9a0 EFLAGS: 00010282 RAX: 0000000000000000 RBX: ffffffff8ff24720 RCX: ffffffff817b6ee8 RDX: ffff88807c932480 RSI: ffffffff817b6ef5 RDI: 0000000000000001 RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000001 R11: 0000000000000001 R12: ffffffff8ff24660 R13: dffffc0000000000 R14: 0000000000000000 R15: ffff88814cca0000 FS:  000055556dab1500(0000) GS:ffff8881249d9000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000055f77f285cd0 CR3: 000000007d871000 CR4: 00000000003526f0 Call Trace:  <TASK>  comedi_device_detach_locked+0x12f/0xa50 drivers/comedi/drivers.c:207  comedi_device_detach+0x67/0xb0 drivers/comedi/drivers.c:215  comedi_device_attach+0x43d/0x900 drivers/comedi/drivers.c:1011  do_devconfig_ioctl+0x1b1/0x710 drivers/comedi/comedi_fops.c:872  comedi_unlocked_ioctl+0x165d/0x2f00 drivers/comedi/comedi_fops.c:2178  vfs_ioctl fs/ioctl.c:51 [inline]  __do_sys_ioctl fs/ioctl.c:597 [inline]  __se_sys_ioctl fs/ioctl.c:583 [inline]  __x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_sys ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68266",
                        "url": "https://ubuntu.com/security/CVE-2025-68266",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bfs: Reconstruct file type when loading from disk  syzbot is reporting that S_IFMT bits of inode->i_mode can become bogus when the S_IFMT bits of the 32bits \"mode\" field loaded from disk are corrupted or when the 32bits \"attributes\" field loaded from disk are corrupted.  A documentation says that BFS uses only lower 9 bits of the \"mode\" field. But I can't find an explicit explanation that the unused upper 23 bits (especially, the S_IFMT bits) are initialized with 0.  Therefore, ignore the S_IFMT bits of the \"mode\" field loaded from disk. Also, verify that the value of the \"attributes\" field loaded from disk is either BFS_VREG or BFS_VDIR (because BFS supports only regular files and the root directory).",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68335",
                        "url": "https://ubuntu.com/security/CVE-2025-68335",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: pcl818: fix null-ptr-deref in pcl818_ai_cancel()  Syzbot identified an issue [1] in pcl818_ai_cancel(), which stems from the fact that in case of early device detach via pcl818_detach(), subdevice dev->read_subdev may not have initialized its pointer to &struct comedi_async as intended. Thus, any such dereferencing of &s->async->cmd will lead to general protection fault and kernel crash.  Mitigate this problem by removing a call to pcl818_ai_cancel() from pcl818_detach() altogether. This way, if the subdevice setups its support for async commands, everything async-related will be handled via subdevice's own ->cancel() function in comedi_device_detach_locked() even before pcl818_detach(). If no support for asynchronous commands is provided, there is no need to cancel anything either.  [1] Syzbot crash: Oops: general protection fault, probably for non-canonical address 0xdffffc0000000005: 0000 [#1] SMP KASAN PTI KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f] CPU: 1 UID: 0 PID: 6050 Comm: syz.0.18 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025 RIP: 0010:pcl818_ai_cancel+0x69/0x3f0 drivers/comedi/drivers/pcl818.c:762 ... Call Trace:  <TASK>  pcl818_detach+0x66/0xd0 drivers/comedi/drivers/pcl818.c:1115  comedi_device_detach_locked+0x178/0x750 drivers/comedi/drivers.c:207  do_devconfig_ioctl drivers/comedi/comedi_fops.c:848 [inline]  comedi_unlocked_ioctl+0xcde/0x1020 drivers/comedi/comedi_fops.c:2178  vfs_ioctl fs/ioctl.c:51 [inline]  __do_sys_ioctl fs/ioctl.c:597 [inline] ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68261",
                        "url": "https://ubuntu.com/security/CVE-2025-68261",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock()  Fix a race between inline data destruction and block mapping.  The function ext4_destroy_inline_data_nolock() changes the inode data layout by clearing EXT4_INODE_INLINE_DATA and setting EXT4_INODE_EXTENTS. At the same time, another thread may execute ext4_map_blocks(), which tests EXT4_INODE_EXTENTS to decide whether to call ext4_ext_map_blocks() or ext4_ind_map_blocks().  Without i_data_sem protection, ext4_ind_map_blocks() may receive inode with EXT4_INODE_EXTENTS flag and triggering assert.  kernel BUG at fs/ext4/indirect.c:546! EXT4-fs (loop2): unmounting filesystem. invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:ext4_ind_map_blocks.cold+0x2b/0x5a fs/ext4/indirect.c:546  Call Trace:  <TASK>  ext4_map_blocks+0xb9b/0x16f0 fs/ext4/inode.c:681  _ext4_get_block+0x242/0x590 fs/ext4/inode.c:822  ext4_block_write_begin+0x48b/0x12c0 fs/ext4/inode.c:1124  ext4_write_begin+0x598/0xef0 fs/ext4/inode.c:1255  ext4_da_write_begin+0x21e/0x9c0 fs/ext4/inode.c:3000  generic_perform_write+0x259/0x5d0 mm/filemap.c:3846  ext4_buffered_write_iter+0x15b/0x470 fs/ext4/file.c:285  ext4_file_write_iter+0x8e0/0x17f0 fs/ext4/file.c:679  call_write_iter include/linux/fs.h:2271 [inline]  do_iter_readv_writev+0x212/0x3c0 fs/read_write.c:735  do_iter_write+0x186/0x710 fs/read_write.c:861  vfs_iter_write+0x70/0xa0 fs/read_write.c:902  iter_file_splice_write+0x73b/0xc90 fs/splice.c:685  do_splice_from fs/splice.c:763 [inline]  direct_splice_actor+0x10f/0x170 fs/splice.c:950  splice_direct_to_actor+0x33a/0xa10 fs/splice.c:896  do_splice_direct+0x1a9/0x280 fs/splice.c:1002  do_sendfile+0xb13/0x12c0 fs/read_write.c:1255  __do_sys_sendfile64 fs/read_write.c:1323 [inline]  __se_sys_sendfile64 fs/read_write.c:1309 [inline]  __x64_sys_sendfile64+0x1cf/0x210 fs/read_write.c:1309  do_syscall_x64 arch/x86/entry/common.c:51 [inline]  do_syscall_64+0x35/0x80 arch/x86/entry/common.c:81  entry_SYSCALL_64_after_hwframe+0x6e/0xd8",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68336",
                        "url": "https://ubuntu.com/security/CVE-2025-68336",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  locking/spinlock/debug: Fix data-race in do_raw_write_lock  KCSAN reports:  BUG: KCSAN: data-race in do_raw_write_lock / do_raw_write_lock  write (marked) to 0xffff800009cf504c of 4 bytes by task 1102 on cpu 1:  do_raw_write_lock+0x120/0x204  _raw_write_lock_irq  do_exit  call_usermodehelper_exec_async  ret_from_fork  read to 0xffff800009cf504c of 4 bytes by task 1103 on cpu 0:  do_raw_write_lock+0x88/0x204  _raw_write_lock_irq  do_exit  call_usermodehelper_exec_async  ret_from_fork  value changed: 0xffffffff -> 0x00000001  Reported by Kernel Concurrency Sanitizer on: CPU: 0 PID: 1103 Comm: kworker/u4:1 6.1.111  Commit 1a365e822372 (\"locking/spinlock/debug: Fix various data races\") has adressed most of these races, but seems to be not consistent/not complete.  >From do_raw_write_lock() only debug_write_lock_after() part has been converted to WRITE_ONCE(), but not debug_write_lock_before() part. Do it now.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68264",
                        "url": "https://ubuntu.com/security/CVE-2025-68264",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: refresh inline data size before write operations  The cached ei->i_inline_size can become stale between the initial size check and when ext4_update_inline_data()/ext4_create_inline_data() use it. Although ext4_get_max_inline_size() reads the correct value at the time of the check, concurrent xattr operations can modify i_inline_size before ext4_write_lock_xattr() is acquired.  This causes ext4_update_inline_data() and ext4_create_inline_data() to work with stale capacity values, leading to a BUG_ON() crash in ext4_write_inline_data():    kernel BUG at fs/ext4/inline.c:1331!   BUG_ON(pos + len > EXT4_I(inode)->i_inline_size);  The race window: 1. ext4_get_max_inline_size() reads i_inline_size = 60 (correct) 2. Size check passes for 50-byte write 3. [Another thread adds xattr, i_inline_size changes to 40] 4. ext4_write_lock_xattr() acquires lock 5. ext4_update_inline_data() uses stale i_inline_size = 60 6. Attempts to write 50 bytes but only 40 bytes actually available 7. BUG_ON() triggers  Fix this by recalculating i_inline_size via ext4_find_inline_data_nolock() immediately after acquiring xattr_sem. This ensures ext4_update_inline_data() and ext4_create_inline_data() work with current values that are protected from concurrent modifications.  This is similar to commit a54c4613dac1 (\"ext4: fix race writing to an inline_data file while its xattrs are changing\") which fixed i_inline_off staleness. This patch addresses the related i_inline_size staleness issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68337",
                        "url": "https://ubuntu.com/security/CVE-2025-68337",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system corrupted  There's issue when file system corrupted: ------------[ cut here ]------------ kernel BUG at fs/jbd2/transaction.c:1289! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 5 UID: 0 PID: 2031 Comm: mkdir Not tainted 6.18.0-rc1-next RIP: 0010:jbd2_journal_get_create_access+0x3b6/0x4d0 RSP: 0018:ffff888117aafa30 EFLAGS: 00010202 RAX: 0000000000000000 RBX: ffff88811a86b000 RCX: ffffffff89a63534 RDX: 1ffff110200ec602 RSI: 0000000000000004 RDI: ffff888100763010 RBP: ffff888100763000 R08: 0000000000000001 R09: ffff888100763028 R10: 0000000000000003 R11: 0000000000000000 R12: 0000000000000000 R13: ffff88812c432000 R14: ffff88812c608000 R15: ffff888120bfc000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f91d6970c99 CR3: 00000001159c4000 CR4: 00000000000006f0 Call Trace:  <TASK>  __ext4_journal_get_create_access+0x42/0x170  ext4_getblk+0x319/0x6f0  ext4_bread+0x11/0x100  ext4_append+0x1e6/0x4a0  ext4_init_new_dir+0x145/0x1d0  ext4_mkdir+0x326/0x920  vfs_mkdir+0x45c/0x740  do_mkdirat+0x234/0x2f0  __x64_sys_mkdir+0xd6/0x120  do_syscall_64+0x5f/0xfa0  entry_SYSCALL_64_after_hwframe+0x76/0x7e  The above issue occurs with us in errors=continue mode when accompanied by storage failures. There have been many inconsistencies in the file system data. In the case of file system data inconsistency, for example, if the block bitmap of a referenced block is not set, it can lead to the situation where a block being committed is allocated and used again. As a result, the following condition will not be satisfied then trigger BUG_ON. Of course, it is entirely possible to construct a problematic image that can trigger this BUG_ON through specific operations. In fact, I have constructed such an image and easily reproduced this issue. Therefore, J_ASSERT() holds true only under ideal conditions, but it may not necessarily be satisfied in exceptional scenarios. Using J_ASSERT() directly in abnormal situations would cause the system to crash, which is clearly not what we want. So here we directly trigger a JBD abort instead of immediately invoking BUG_ON.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-47666",
                        "url": "https://ubuntu.com/security/CVE-2024-47666",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: pm80xx: Set phy->enable_completion only when we wait for it  pm8001_phy_control() populates the enable_completion pointer with a stack address, sends a PHY_LINK_RESET / PHY_HARD_RESET, waits 300 ms, and returns. The problem arises when a phy control response comes late.  After 300 ms the pm8001_phy_control() function returns and the passed enable_completion stack address is no longer valid. Late phy control response invokes complete() on a dangling enable_completion pointer which leads to a kernel crash.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-10-09 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68327",
                        "url": "https://ubuntu.com/security/CVE-2025-68327",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: renesas_usbhs: Fix synchronous external abort on unbind  A synchronous external abort occurs on the Renesas RZ/G3S SoC if unbind is executed after the configuration sequence described above:  modprobe usb_f_ecm modprobe libcomposite modprobe configfs cd /sys/kernel/config/usb_gadget mkdir -p g1 cd g1 echo \"0x1d6b\" > idVendor echo \"0x0104\" > idProduct mkdir -p strings/0x409 echo \"0123456789\" > strings/0x409/serialnumber echo \"Renesas.\" > strings/0x409/manufacturer echo \"Ethernet Gadget\" > strings/0x409/product mkdir -p functions/ecm.usb0 mkdir -p configs/c.1 mkdir -p configs/c.1/strings/0x409 echo \"ECM\" > configs/c.1/strings/0x409/configuration  if [ ! -L configs/c.1/ecm.usb0 ]; then         ln -s functions/ecm.usb0 configs/c.1 fi  echo 11e20000.usb > UDC echo 11e20000.usb > /sys/bus/platform/drivers/renesas_usbhs/unbind  The displayed trace is as follows:   Internal error: synchronous external abort: 0000000096000010 [#1] SMP  CPU: 0 UID: 0 PID: 188 Comm: sh Tainted: G M 6.17.0-rc7-next-20250922-00010-g41050493b2bd #55 PREEMPT  Tainted: [M]=MACHINE_CHECK  Hardware name: Renesas SMARC EVK version 2 based on r9a08g045s33 (DT)  pstate: 604000c5 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)  pc : usbhs_sys_function_pullup+0x10/0x40 [renesas_usbhs]  lr : usbhsg_update_pullup+0x3c/0x68 [renesas_usbhs]  sp : ffff8000838b3920  x29: ffff8000838b3920 x28: ffff00000d585780 x27: 0000000000000000  x26: 0000000000000000 x25: 0000000000000000 x24: ffff00000c3e3810  x23: ffff00000d5e5c80 x22: ffff00000d5e5d40 x21: 0000000000000000  x20: 0000000000000000 x19: ffff00000d5e5c80 x18: 0000000000000020  x17: 2e30303230316531 x16: 312d7968703a7968 x15: 3d454d414e5f4344  x14: 000000000000002c x13: 0000000000000000 x12: 0000000000000000  x11: ffff00000f358f38 x10: ffff00000f358db0 x9 : ffff00000b41f418  x8 : 0101010101010101 x7 : 7f7f7f7f7f7f7f7f x6 : fefefeff6364626d  x5 : 8080808000000000 x4 : 000000004b5ccb9d x3 : 0000000000000000  x2 : 0000000000000000 x1 : ffff800083790000 x0 : ffff00000d5e5c80  Call trace:  usbhs_sys_function_pullup+0x10/0x40 [renesas_usbhs] (P)  usbhsg_pullup+0x4c/0x7c [renesas_usbhs]  usb_gadget_disconnect_locked+0x48/0xd4  gadget_unbind_driver+0x44/0x114  device_remove+0x4c/0x80  device_release_driver_internal+0x1c8/0x224  device_release_driver+0x18/0x24  bus_remove_device+0xcc/0x10c  device_del+0x14c/0x404  usb_del_gadget+0x88/0xc0  usb_del_gadget_udc+0x18/0x30  usbhs_mod_gadget_remove+0x24/0x44 [renesas_usbhs]  usbhs_mod_remove+0x20/0x30 [renesas_usbhs]  usbhs_remove+0x98/0xdc [renesas_usbhs]  platform_remove+0x20/0x30  device_remove+0x4c/0x80  device_release_driver_internal+0x1c8/0x224  device_driver_detach+0x18/0x24  unbind_store+0xb4/0xb8  drv_attr_store+0x24/0x38  sysfs_kf_write+0x7c/0x94  kernfs_fop_write_iter+0x128/0x1b8  vfs_write+0x2ac/0x350  ksys_write+0x68/0xfc  __arm64_sys_write+0x1c/0x28  invoke_syscall+0x48/0x110  el0_svc_common.constprop.0+0xc0/0xe0  do_el0_svc+0x1c/0x28  el0_svc+0x34/0xf0  el0t_64_sync_handler+0xa0/0xe4  el0t_64_sync+0x198/0x19c  Code: 7100003f 1a9f07e1 531c6c22 f9400001 (79400021)  ---[ end trace 0000000000000000 ]---  note: sh[188] exited with irqs disabled  note: sh[188] exited with preempt_count 1  The issue occurs because usbhs_sys_function_pullup(), which accesses the IP registers, is executed after the USBHS clocks have been disabled. The problem is reproducible on the Renesas RZ/G3S SoC starting with the addition of module stop in the clock enable/disable APIs. With module stop functionality enabled, a bus error is expected if a master accesses a module whose clock has been stopped and module stop activated.  Disable the IP clocks at the end of remove.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68295",
                        "url": "https://ubuntu.com/security/CVE-2025-68295",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb: client: fix memory leak in cifs_construct_tcon()  When having a multiuser mount with domain= specified and using cifscreds, cifs_set_cifscreds() will end up setting @ctx->domainname, so it needs to be freed before leaving cifs_construct_tcon().  This fixes the following memory leak reported by kmemleak:    mount.cifs //srv/share /mnt -o domain=ZELDA,multiuser,...   su - testuser   cifscreds add -d ZELDA -u testuser   ...   ls /mnt/1   ...   umount /mnt   echo scan > /sys/kernel/debug/kmemleak   cat /sys/kernel/debug/kmemleak   unreferenced object 0xffff8881203c3f08 (size 8):     comm \"ls\", pid 5060, jiffies 4307222943     hex dump (first 8 bytes):       5a 45 4c 44 41 00 cc cc                          ZELDA...     backtrace (crc d109a8cf):       __kmalloc_node_track_caller_noprof+0x572/0x710       kstrdup+0x3a/0x70       cifs_sb_tlink+0x1209/0x1770 [cifs]       cifs_get_fattr+0xe1/0xf50 [cifs]       cifs_get_inode_info+0xb5/0x240 [cifs]       cifs_revalidate_dentry_attr+0x2d1/0x470 [cifs]       cifs_getattr+0x28e/0x450 [cifs]       vfs_getattr_nosec+0x126/0x180       vfs_statx+0xf6/0x220       do_statx+0xab/0x110       __x64_sys_statx+0xd5/0x130       do_syscall_64+0xbb/0x380       entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68227",
                        "url": "https://ubuntu.com/security/CVE-2025-68227",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: Fix proto fallback detection with BPF  The sockmap feature allows bpf syscall from userspace, or based on bpf sockops, replacing the sk_prot of sockets during protocol stack processing with sockmap's custom read/write interfaces. ''' tcp_rcv_state_process()   syn_recv_sock()/subflow_syn_recv_sock()     tcp_init_transfer(BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB)       bpf_skops_established       <== sockops         bpf_sock_map_update(sk)   <== call bpf helper           tcp_bpf_update_proto()  <== update sk_prot '''  When the server has MPTCP enabled but the client sends a TCP SYN without MPTCP, subflow_syn_recv_sock() performs a fallback on the subflow, replacing the subflow sk's sk_prot with the native sk_prot. ''' subflow_syn_recv_sock()   subflow_ulp_fallback()     subflow_drop_ctx()       mptcp_subflow_ops_undo_override() '''  Then, this subflow can be normally used by sockmap, which replaces the native sk_prot with sockmap's custom sk_prot. The issue occurs when the user executes accept::mptcp_stream_accept::mptcp_fallback_tcp_ops(). Here, it uses sk->sk_prot to compare with the native sk_prot, but this is incorrect when sockmap is used, as we may incorrectly set sk->sk_socket->ops.  This fix uses the more generic sk_family for the comparison instead.  Additionally, this also prevents a WARNING from occurring:  result from ./scripts/decode_stacktrace.sh: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 337 at net/mptcp/protocol.c:68 mptcp_stream_accept \\ (net/mptcp/protocol.c:4005) Modules linked in: ...  PKRU: 55555554 Call Trace: <TASK> do_accept (net/socket.c:1989) __sys_accept4 (net/socket.c:2028 net/socket.c:2057) __x64_sys_accept (net/socket.c:2067) x64_sys_call (arch/x86/entry/syscall_64.c:41) do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) RIP: 0033:0x7f87ac92b83d  ---[ end trace 0000000000000000 ]---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68284",
                        "url": "https://ubuntu.com/security/CVE-2025-68284",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: prevent potential out-of-bounds writes in handle_auth_session_key()  The len field originates from untrusted network packets. Boundary checks have been added to prevent potential out-of-bounds writes when decrypting the connection secret or processing service tickets.  [ idryomov: changelog ]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68285",
                        "url": "https://ubuntu.com/security/CVE-2025-68285",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: fix potential use-after-free in have_mon_and_osd_map()  The wait loop in __ceph_open_session() can race with the client receiving a new monmap or osdmap shortly after the initial map is received.  Both ceph_monc_handle_map() and handle_one_map() install a new map immediately after freeing the old one      kfree(monc->monmap);     monc->monmap = monmap;      ceph_osdmap_destroy(osdc->osdmap);     osdc->osdmap = newmap;  under client->monc.mutex and client->osdc.lock respectively, but because neither is taken in have_mon_and_osd_map() it's possible for client->monc.monmap->epoch and client->osdc.osdmap->epoch arms in      client->monc.monmap && client->monc.monmap->epoch &&         client->osdc.osdmap && client->osdc.osdmap->epoch;  condition to dereference an already freed map.  This happens to be reproducible with generic/395 and generic/397 with KASAN enabled:      BUG: KASAN: slab-use-after-free in have_mon_and_osd_map+0x56/0x70     Read of size 4 at addr ffff88811012d810 by task mount.ceph/13305     CPU: 2 UID: 0 PID: 13305 Comm: mount.ceph Not tainted 6.14.0-rc2-build2+ #1266     ...     Call Trace:     <TASK>     have_mon_and_osd_map+0x56/0x70     ceph_open_session+0x182/0x290     ceph_get_tree+0x333/0x680     vfs_get_tree+0x49/0x180     do_new_mount+0x1a3/0x2d0     path_mount+0x6dd/0x730     do_mount+0x99/0xe0     __do_sys_mount+0x141/0x180     do_syscall_64+0x9f/0x100     entry_SYSCALL_64_after_hwframe+0x76/0x7e     </TASK>      Allocated by task 13305:     ceph_osdmap_alloc+0x16/0x130     ceph_osdc_init+0x27a/0x4c0     ceph_create_client+0x153/0x190     create_fs_client+0x50/0x2a0     ceph_get_tree+0xff/0x680     vfs_get_tree+0x49/0x180     do_new_mount+0x1a3/0x2d0     path_mount+0x6dd/0x730     do_mount+0x99/0xe0     __do_sys_mount+0x141/0x180     do_syscall_64+0x9f/0x100     entry_SYSCALL_64_after_hwframe+0x76/0x7e      Freed by task 9475:     kfree+0x212/0x290     handle_one_map+0x23c/0x3b0     ceph_osdc_handle_map+0x3c9/0x590     mon_dispatch+0x655/0x6f0     ceph_con_process_message+0xc3/0xe0     ceph_con_v1_try_read+0x614/0x760     ceph_con_workfn+0x2de/0x650     process_one_work+0x486/0x7c0     process_scheduled_works+0x73/0x90     worker_thread+0x1c8/0x2a0     kthread+0x2ec/0x300     ret_from_fork+0x24/0x40     ret_from_fork_asm+0x1a/0x30  Rewrite the wait loop to check the above condition directly with client->monc.mutex and client->osdc.lock taken as appropriate.  While at it, improve the timeout handling (previously mount_timeout could be exceeded in case wait_event_interruptible_timeout() slept more than once) and access client->auth_err under client->monc.mutex to match how it's set in finish_auth().  monmap_show() and osdmap_show() now take the respective lock before accessing the map as well.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68286",
                        "url": "https://ubuntu.com/security/CVE-2025-68286",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/display: Check NULL before accessing  [WHAT] IGT kms_cursor_legacy's long-nonblocking-modeset-vs-cursor-atomic fails with NULL pointer dereference. This can be reproduced with both an eDP panel and a DP monitors connected.   BUG: kernel NULL pointer dereference, address: 0000000000000000  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page  PGD 0 P4D 0  Oops: Oops: 0000 [#1] SMP NOPTI  CPU: 13 UID: 0 PID: 2960 Comm: kms_cursor_lega Not tainted 6.16.0-99-custom #8 PREEMPT(voluntary)  Hardware name: AMD ........  RIP: 0010:dc_stream_get_scanoutpos+0x34/0x130 [amdgpu]  Code: 57 4d 89 c7 41 56 49 89 ce 41 55 49 89 d5 41 54 49  89 fc 53 48 83 ec 18 48 8b 87 a0 64 00 00 48 89 75 d0 48 c7 c6 e0 41 30  c2 <48> 8b 38 48 8b 9f 68 06 00 00 e8 8d d7 fd ff 31 c0 48 81 c3 e0 02  RSP: 0018:ffffd0f3c2bd7608 EFLAGS: 00010292  RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffd0f3c2bd7668  RDX: ffffd0f3c2bd7664 RSI: ffffffffc23041e0 RDI: ffff8b32494b8000  RBP: ffffd0f3c2bd7648 R08: ffffd0f3c2bd766c R09: ffffd0f3c2bd7760  R10: ffffd0f3c2bd7820 R11: 0000000000000000 R12: ffff8b32494b8000  R13: ffffd0f3c2bd7664 R14: ffffd0f3c2bd7668 R15: ffffd0f3c2bd766c  FS:  000071f631b68700(0000) GS:ffff8b399f114000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000000 CR3: 00000001b8105000 CR4: 0000000000f50ef0  PKRU: 55555554  Call Trace:  <TASK>  dm_crtc_get_scanoutpos+0xd7/0x180 [amdgpu]  amdgpu_display_get_crtc_scanoutpos+0x86/0x1c0 [amdgpu]  ? __pfx_amdgpu_crtc_get_scanout_position+0x10/0x10[amdgpu]  amdgpu_crtc_get_scanout_position+0x27/0x50 [amdgpu]  drm_crtc_vblank_helper_get_vblank_timestamp_internal+0xf7/0x400  drm_crtc_vblank_helper_get_vblank_timestamp+0x1c/0x30  drm_crtc_get_last_vbltimestamp+0x55/0x90  drm_crtc_next_vblank_start+0x45/0xa0  drm_atomic_helper_wait_for_fences+0x81/0x1f0  ...  (cherry picked from commit 621e55f1919640acab25383362b96e65f2baea3c)",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68287",
                        "url": "https://ubuntu.com/security/CVE-2025-68287",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: dwc3: Fix race condition between concurrent dwc3_remove_requests() call paths  This patch addresses a race condition caused by unsynchronized execution of multiple call paths invoking `dwc3_remove_requests()`, leading to premature freeing of USB requests and subsequent crashes.  Three distinct execution paths interact with `dwc3_remove_requests()`: Path 1: Triggered via `dwc3_gadget_reset_interrupt()` during USB reset handling. The call stack includes: - `dwc3_ep0_reset_state()` - `dwc3_ep0_stall_and_restart()` - `dwc3_ep0_out_start()` - `dwc3_remove_requests()` - `dwc3_gadget_del_and_unmap_request()`  Path 2: Also initiated from `dwc3_gadget_reset_interrupt()`, but through `dwc3_stop_active_transfers()`. The call stack includes: - `dwc3_stop_active_transfers()` - `dwc3_remove_requests()` - `dwc3_gadget_del_and_unmap_request()`  Path 3: Occurs independently during `adb root` execution, which triggers USB function unbind and bind operations. The sequence includes: - `gserial_disconnect()` - `usb_ep_disable()` - `dwc3_gadget_ep_disable()` - `dwc3_remove_requests()` with `-ESHUTDOWN` status  Path 3 operates asynchronously and lacks synchronization with Paths 1 and 2. When Path 3 completes, it disables endpoints and frees 'out' requests. If Paths 1 or 2 are still processing these requests, accessing freed memory leads to a crash due to use-after-free conditions.  To fix this added check for request completion and skip processing if already completed and added the request status for ep0 while queue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68331",
                        "url": "https://ubuntu.com/security/CVE-2025-68331",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: uas: fix urb unmapping issue when the uas device is remove during ongoing data transfer  When a UAS device is unplugged during data transfer, there is a probability of a system panic occurring. The root cause is an access to an invalid memory address during URB callback handling. Specifically, this happens when the dma_direct_unmap_sg() function is called within the usb_hcd_unmap_urb_for_dma() interface, but the sg->dma_address field is 0 and the sg data structure has already been freed.  The SCSI driver sends transfer commands by invoking uas_queuecommand_lck() in uas.c, using the uas_submit_urbs() function to submit requests to USB. Within the uas_submit_urbs() implementation, three URBs (sense_urb, data_urb, and cmd_urb) are sequentially submitted. Device removal may occur at any point during uas_submit_urbs execution, which may result in URB submission failure. However, some URBs might have been successfully submitted before the failure, and uas_submit_urbs will return the -ENODEV error code in this case. The current error handling directly calls scsi_done(). In the SCSI driver, this eventually triggers scsi_complete() to invoke scsi_end_request() for releasing the sgtable. The successfully submitted URBs, when being unlinked to giveback, call usb_hcd_unmap_urb_for_dma() in hcd.c, leading to exceptions during sg unmapping operations since the sg data structure has already been freed.  This patch modifies the error condition check in the uas_submit_urbs() function. When a UAS device is removed but one or more URBs have already been successfully submitted to USB, it avoids immediately invoking scsi_done() and save the cmnd to devinfo->cmnd array. If the successfully submitted URBs is completed before devinfo->resetting being set, then the scsi_done() function will be called within uas_try_complete() after all pending URB operations are finalized. Otherwise, the scsi_done() function will be called within uas_zap_pending(), which is executed after usb_kill_anchored_urbs().  The error handling only takes effect when uas_queuecommand_lck() calls uas_submit_urbs() and returns the error value -ENODEV . In this case, the device is disconnected, and the flow proceeds to uas_disconnect(), where uas_zap_pending() is invoked to call uas_try_complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40345",
                        "url": "https://ubuntu.com/security/CVE-2025-40345",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: storage: sddr55: Reject out-of-bound new_pba  Discovered by Atuin - Automated Vulnerability Discovery Engine.  new_pba comes from the status packet returned after each write. A bogus device could report values beyond the block count derived from info->capacity, letting the driver walk off the end of pba_to_lba[] and corrupt heap memory.  Reject PBAs that exceed the computed block count and fail the transfer so we avoid touching out-of-range mapping entries.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-12 18:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68288",
                        "url": "https://ubuntu.com/security/CVE-2025-68288",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: storage: Fix memory leak in USB bulk transport  A kernel memory leak was identified by the 'ioctl_sg01' test from Linux Test Project (LTP). The following bytes were mainly observed: 0x53425355.  When USB storage devices incorrectly skip the data phase with status data, the code extracts/validates the CSW from the sg buffer, but fails to clear it afterwards. This leaves status protocol data in srb's transfer buffer, such as the US_BULK_CS_SIGN 'USBS' signature observed here. Thus, this can lead to USB protocols leaks to user space through SCSI generic (/dev/sg*) interfaces, such as the one seen here when the LTP test requested 512 KiB.  Fix the leak by zeroing the CSW data in srb's transfer buffer immediately after the validation of devices that skip data phase.  Note: Differently from CVE-2018-1000204, which fixed a big leak by zero- ing pages at allocation time, this leak occurs after allocation, when USB protocol data is written to already-allocated sg pages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68289",
                        "url": "https://ubuntu.com/security/CVE-2025-68289",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: f_eem: Fix memory leak in eem_unwrap  The existing code did not handle the failure case of usb_ep_queue in the command path, potentially leading to memory leaks.  Improve error handling to free all allocated resources on usb_ep_queue failure. This patch continues to use goto logic for error handling, as the existing error handling is complex and not easily adaptable to auto-cleanup helpers.  kmemleak results:   unreferenced object 0xffffff895a512300 (size 240):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       kmem_cache_alloc+0x1b4/0x358       skb_clone+0x90/0xd8       eem_unwrap+0x1cc/0x36c   unreferenced object 0xffffff8a157f4000 (size 256):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       kmalloc_trace+0x48/0x140       dwc3_gadget_ep_alloc_request+0x58/0x11c       usb_ep_alloc_request+0x40/0xe4       eem_unwrap+0x204/0x36c   unreferenced object 0xffffff8aadbaac00 (size 128):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       __kmalloc+0x64/0x1a8       eem_unwrap+0x218/0x36c   unreferenced object 0xffffff89ccef3500 (size 64):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       kmalloc_trace+0x48/0x140       eem_unwrap+0x238/0x36c",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68290",
                        "url": "https://ubuntu.com/security/CVE-2025-68290",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  most: usb: fix double free on late probe failure  The MOST subsystem has a non-standard registration function which frees the interface on registration failures and on deregistration.  This unsurprisingly leads to bugs in the MOST drivers, and a couple of recent changes turned a reference underflow and use-after-free in the USB driver into several double free and a use-after-free on late probe failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68328",
                        "url": "https://ubuntu.com/security/CVE-2025-68328",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  firmware: stratix10-svc: fix bug in saving controller data  Fix the incorrect usage of platform_set_drvdata and dev_set_drvdata. They both are of the same data and overrides each other. This resulted in the rmmod of the svc driver to fail and throw a kernel panic for kthread_stop and fifo free.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68339",
                        "url": "https://ubuntu.com/security/CVE-2025-68339",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  atm/fore200e: Fix possible data race in fore200e_open()  Protect access to fore200e->available_cell_rate with rate_mtx lock in the error handling path of fore200e_open() to prevent a data race.  The field fore200e->available_cell_rate is a shared resource used to track available bandwidth. It is concurrently accessed by fore200e_open(), fore200e_close(), and fore200e_change_qos().  In fore200e_open(), the lock rate_mtx is correctly held when subtracting vcc->qos.txtp.max_pcr from available_cell_rate to reserve bandwidth. However, if the subsequent call to fore200e_activate_vcin() fails, the function restores the reserved bandwidth by adding back to available_cell_rate without holding the lock.  This introduces a race condition because available_cell_rate is a global device resource shared across all VCCs. If the error path in fore200e_open() executes concurrently with operations like fore200e_close() or fore200e_change_qos() on other VCCs, a read-modify-write race occurs.  Specifically, the error path reads the rate without the lock. If another CPU acquires the lock and modifies the rate (e.g., releasing bandwidth in fore200e_close()) between this read and the subsequent write, the error path will overwrite the concurrent update with a stale value. This results in incorrect bandwidth accounting.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-23 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68330",
                        "url": "https://ubuntu.com/security/CVE-2025-68330",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: accel: bmc150: Fix irq assumption regression  The code in bmc150-accel-core.c unconditionally calls bmc150_accel_set_interrupt() in the iio_buffer_setup_ops, such as on the runtime PM resume path giving a kernel splat like this if the device has no interrupts:  Unable to handle kernel NULL pointer dereference at virtual   address 00000001 when read  PC is at bmc150_accel_set_interrupt+0x98/0x194 LR is at __pm_runtime_resume+0x5c/0x64 (...) Call trace: bmc150_accel_set_interrupt from bmc150_accel_buffer_postenable+0x40/0x108 bmc150_accel_buffer_postenable from __iio_update_buffers+0xbe0/0xcbc __iio_update_buffers from enable_store+0x84/0xc8 enable_store from kernfs_fop_write_iter+0x154/0x1b4  This bug seems to have been in the driver since the beginning, but it only manifests recently, I do not know why.  Store the IRQ number in the state struct, as this is a common pattern in other drivers, then use this to determine if we have IRQ support or not.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68301",
                        "url": "https://ubuntu.com/security/CVE-2025-68301",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: atlantic: fix fragment overflow handling in RX path  The atlantic driver can receive packets with more than MAX_SKB_FRAGS (17) fragments when handling large multi-descriptor packets. This causes an out-of-bounds write in skb_add_rx_frag_netmem() leading to kernel panic.  The issue occurs because the driver doesn't check the total number of fragments before calling skb_add_rx_frag(). When a packet requires more than MAX_SKB_FRAGS fragments, the fragment index exceeds the array bounds.  Fix by assuming there will be an extra frag if buff->len > AQ_CFG_RX_HDR_SIZE, then all fragments are accounted for. And reusing the existing check to prevent the overflow earlier in the code path.  This crash occurred in production with an Aquantia AQC113 10G NIC.  Stack trace from production environment: ``` RIP: 0010:skb_add_rx_frag_netmem+0x29/0xd0 Code: 90 f3 0f 1e fa 0f 1f 44 00 00 48 89 f8 41 89 ca 48 89 d7 48 63 ce 8b 90 c0 00 00 00 48 c1 e1 04 48 01 ca 48 03 90 c8 00 00 00 <48> 89 7a 30 44 89 52 3c 44 89 42 38 40 f6 c7 01 75 74 48 89 fa 83 RSP: 0018:ffffa9bec02a8d50 EFLAGS: 00010287 RAX: ffff925b22e80a00 RBX: ffff925ad38d2700 RCX: fffffffe0a0c8000 RDX: ffff9258ea95bac0 RSI: ffff925ae0a0c800 RDI: 0000000000037a40 RBP: 0000000000000024 R08: 0000000000000000 R09: 0000000000000021 R10: 0000000000000848 R11: 0000000000000000 R12: ffffa9bec02a8e24 R13: ffff925ad8615570 R14: 0000000000000000 R15: ffff925b22e80a00 FS: 0000000000000000(0000) GS:ffff925e47880000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffff9258ea95baf0 CR3: 0000000166022004 CR4: 0000000000f72ef0 PKRU: 55555554 Call Trace: <IRQ> aq_ring_rx_clean+0x175/0xe60 [atlantic] ? aq_ring_rx_clean+0x14d/0xe60 [atlantic] ? aq_ring_tx_clean+0xdf/0x190 [atlantic] ? kmem_cache_free+0x348/0x450 ? aq_vec_poll+0x81/0x1d0 [atlantic] ? __napi_poll+0x28/0x1c0 ? net_rx_action+0x337/0x420 ```  Changes in v4: - Add Fixes: tag to satisfy patch validation requirements.  Changes in v3: - Fix by assuming there will be an extra frag if buff->len > AQ_CFG_RX_HDR_SIZE,   then all fragments are accounted for.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68302",
                        "url": "https://ubuntu.com/security/CVE-2025-68302",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sxgbe: fix potential NULL dereference in sxgbe_rx()  Currently, when skb is null, the driver prints an error and then dereferences skb on the next line.  To fix this, let's add a 'break' after the error message to switch to sxgbe_rx_refill(), which is similar to the approach taken by the other drivers in this particular case, e.g. calxeda with xgmac_rx().  Found during a code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68303",
                        "url": "https://ubuntu.com/security/CVE-2025-68303",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: intel: punit_ipc: fix memory corruption  This passes the address of the pointer \"&punit_ipcdev\" when the intent was to pass the pointer itself \"punit_ipcdev\" (without the ampersand). This means that the:  \tcomplete(&ipcdev->cmd_complete);  in intel_punit_ioc() will write to a wrong memory address corrupting it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68308",
                        "url": "https://ubuntu.com/security/CVE-2025-68308",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: kvaser_usb: leaf: Fix potential infinite loop in command parsers  The `kvaser_usb_leaf_wait_cmd()` and `kvaser_usb_leaf_read_bulk_callback` functions contain logic to zero-length commands. These commands are used to align data to the USB endpoint's wMaxPacketSize boundary.  The driver attempts to skip these placeholders by aligning the buffer position `pos` to the next packet boundary using `round_up()` function.  However, if zero-length command is found exactly on a packet boundary (i.e., `pos` is a multiple of wMaxPacketSize, including 0), `round_up` function will return the unchanged value of `pos`. This prevents `pos` to be increased, causing an infinite loop in the parsing logic.  This patch fixes this in the function by using `pos + 1` instead. This ensures that even if `pos` is on a boundary, the calculation is based on `pos + 1`, forcing `round_up()` to always return the next aligned boundary.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40257",
                        "url": "https://ubuntu.com/security/CVE-2025-40257",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fix a race in mptcp_pm_del_add_timer()  mptcp_pm_del_add_timer() can call sk_stop_timer_sync(sk, &entry->add_timer) while another might have free entry already, as reported by syzbot.  Add RCU protection to fix this issue.  Also change confusing add_timer variable with stop_timer boolean.  syzbot report:  BUG: KASAN: slab-use-after-free in __timer_delete_sync+0x372/0x3f0 kernel/time/timer.c:1616 Read of size 4 at addr ffff8880311e4150 by task kworker/1:1/44  CPU: 1 UID: 0 PID: 44 Comm: kworker/1:1 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 Workqueue: events mptcp_worker Call Trace:  <TASK>   dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120   print_address_description mm/kasan/report.c:378 [inline]   print_report+0xca/0x240 mm/kasan/report.c:482   kasan_report+0x118/0x150 mm/kasan/report.c:595   __timer_delete_sync+0x372/0x3f0 kernel/time/timer.c:1616   sk_stop_timer_sync+0x1b/0x90 net/core/sock.c:3631   mptcp_pm_del_add_timer+0x283/0x310 net/mptcp/pm.c:362   mptcp_incoming_options+0x1357/0x1f60 net/mptcp/options.c:1174   tcp_data_queue+0xca/0x6450 net/ipv4/tcp_input.c:5361   tcp_rcv_established+0x1335/0x2670 net/ipv4/tcp_input.c:6441   tcp_v4_do_rcv+0x98b/0xbf0 net/ipv4/tcp_ipv4.c:1931   tcp_v4_rcv+0x252a/0x2dc0 net/ipv4/tcp_ipv4.c:2374   ip_protocol_deliver_rcu+0x221/0x440 net/ipv4/ip_input.c:205   ip_local_deliver_finish+0x3bb/0x6f0 net/ipv4/ip_input.c:239   NF_HOOK+0x30c/0x3a0 include/linux/netfilter.h:318   NF_HOOK+0x30c/0x3a0 include/linux/netfilter.h:318   __netif_receive_skb_one_core net/core/dev.c:6079 [inline]   __netif_receive_skb+0x143/0x380 net/core/dev.c:6192   process_backlog+0x31e/0x900 net/core/dev.c:6544   __napi_poll+0xb6/0x540 net/core/dev.c:7594   napi_poll net/core/dev.c:7657 [inline]   net_rx_action+0x5f7/0xda0 net/core/dev.c:7784   handle_softirqs+0x22f/0x710 kernel/softirq.c:622   __do_softirq kernel/softirq.c:656 [inline]   __local_bh_enable_ip+0x1a0/0x2e0 kernel/softirq.c:302   mptcp_pm_send_ack net/mptcp/pm.c:210 [inline]  mptcp_pm_addr_send_ack+0x41f/0x500 net/mptcp/pm.c:-1   mptcp_pm_worker+0x174/0x320 net/mptcp/pm.c:1002   mptcp_worker+0xd5/0x1170 net/mptcp/protocol.c:2762   process_one_work kernel/workqueue.c:3263 [inline]   process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3346   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3427   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 44:   kasan_save_stack mm/kasan/common.c:56 [inline]   kasan_save_track+0x3e/0x80 mm/kasan/common.c:77   poison_kmalloc_redzone mm/kasan/common.c:400 [inline]   __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:417   kasan_kmalloc include/linux/kasan.h:262 [inline]   __kmalloc_cache_noprof+0x1ef/0x6c0 mm/slub.c:5748   kmalloc_noprof include/linux/slab.h:957 [inline]   mptcp_pm_alloc_anno_list+0x104/0x460 net/mptcp/pm.c:385   mptcp_pm_create_subflow_or_signal_addr+0xf9d/0x1360 net/mptcp/pm_kernel.c:355   mptcp_pm_nl_fully_established net/mptcp/pm_kernel.c:409 [inline]   __mptcp_pm_kernel_worker+0x417/0x1ef0 net/mptcp/pm_kernel.c:1529   mptcp_pm_worker+0x1ee/0x320 net/mptcp/pm.c:1008   mptcp_worker+0xd5/0x1170 net/mptcp/protocol.c:2762   process_one_work kernel/workqueue.c:3263 [inline]   process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3346   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3427   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  Freed by task 6630:   kasan_save_stack mm/kasan/common.c:56 [inline]   kasan_save_track+0x3e/0x80 mm/kasan/common.c:77   __kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:587   kasan_save_free_info mm/kasan/kasan.h:406 [inline]   poison_slab_object m ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68217",
                        "url": "https://ubuntu.com/security/CVE-2025-68217",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: pegasus-notetaker - fix potential out-of-bounds access  In the pegasus_notetaker driver, the pegasus_probe() function allocates the URB transfer buffer using the wMaxPacketSize value from the endpoint descriptor. An attacker can use a malicious USB descriptor to force the allocation of a very small buffer.  Subsequently, if the device sends an interrupt packet with a specific pattern (e.g., where the first byte is 0x80 or 0x42), the pegasus_parse_packet() function parses the packet without checking the allocated buffer size. This leads to an out-of-bounds memory access.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68204",
                        "url": "https://ubuntu.com/security/CVE-2025-68204",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: arm: scmi: Fix genpd leak on provider registration failure  If of_genpd_add_provider_onecell() fails during probe, the previously created generic power domains are not removed, leading to a memory leak and potential kernel crash later in genpd_debug_add().  Add proper error handling to unwind the initialized domains before returning from probe to ensure all resources are correctly released on failure.  Example crash trace observed without this fix:    | Unable to handle kernel paging request at virtual address fffffffffffffc70   | CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.18.0-rc1 #405 PREEMPT   | Hardware name: ARM LTD ARM Juno Development Platform/ARM Juno Development Platform   | pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)   | pc : genpd_debug_add+0x2c/0x160   | lr : genpd_debug_init+0x74/0x98   | Call trace:   |  genpd_debug_add+0x2c/0x160 (P)   |  genpd_debug_init+0x74/0x98   |  do_one_initcall+0xd0/0x2d8   |  do_initcall_level+0xa0/0x140   |  do_initcalls+0x60/0xa8   |  do_basic_setup+0x28/0x40   |  kernel_init_freeable+0xe8/0x170   |  kernel_init+0x2c/0x140   |  ret_from_fork+0x10/0x20",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68245",
                        "url": "https://ubuntu.com/security/CVE-2025-68245",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: netpoll: fix incorrect refcount handling causing incorrect cleanup  commit efa95b01da18 (\"netpoll: fix use after free\") incorrectly ignored the refcount and prematurely set dev->npinfo to NULL during netpoll cleanup, leading to improper behavior and memory leaks.  Scenario causing lack of proper cleanup:  1) A netpoll is associated with a NIC (e.g., eth0) and netdev->npinfo is    allocated, and refcnt = 1    - Keep in mind that npinfo is shared among all netpoll instances. In      this case, there is just one.  2) Another netpoll is also associated with the same NIC and    npinfo->refcnt += 1.    - Now dev->npinfo->refcnt = 2;    - There is just one npinfo associated to the netdev.  3) When the first netpolls goes to clean up:    - The first cleanup succeeds and clears np->dev->npinfo, ignoring      refcnt.      - It basically calls `RCU_INIT_POINTER(np->dev->npinfo, NULL);`    - Set dev->npinfo = NULL, without proper cleanup    - No ->ndo_netpoll_cleanup() is either called  4) Now the second target tries to clean up    - The second cleanup fails because np->dev->npinfo is already NULL.      * In this case, ops->ndo_netpoll_cleanup() was never called, and        the skb pool is not cleaned as well (for the second netpoll        instance)   - This leaks npinfo and skbpool skbs, which is clearly reported by     kmemleak.  Revert commit efa95b01da18 (\"netpoll: fix use after free\") and adds clarifying comments emphasizing that npinfo cleanup should only happen once the refcount reaches zero, ensuring stable and correct netpoll behavior.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-37354",
                        "url": "https://ubuntu.com/security/CVE-2024-37354",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix crash on racing fsync and size-extending write into prealloc  We have been seeing crashes on duplicate keys in btrfs_set_item_key_safe():    BTRFS critical (device vdb): slot 4 key (450 108 8192) new key (450 108 8192)   ------------[ cut here ]------------   kernel BUG at fs/btrfs/ctree.c:2620!   invalid opcode: 0000 [#1] PREEMPT SMP PTI   CPU: 0 PID: 3139 Comm: xfs_io Kdump: loaded Not tainted 6.9.0 #6   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014   RIP: 0010:btrfs_set_item_key_safe+0x11f/0x290 [btrfs]  With the following stack trace:    #0  btrfs_set_item_key_safe (fs/btrfs/ctree.c:2620:4)   #1  btrfs_drop_extents (fs/btrfs/file.c:411:4)   #2  log_one_extent (fs/btrfs/tree-log.c:4732:9)   #3  btrfs_log_changed_extents (fs/btrfs/tree-log.c:4955:9)   #4  btrfs_log_inode (fs/btrfs/tree-log.c:6626:9)   #5  btrfs_log_inode_parent (fs/btrfs/tree-log.c:7070:8)   #6  btrfs_log_dentry_safe (fs/btrfs/tree-log.c:7171:8)   #7  btrfs_sync_file (fs/btrfs/file.c:1933:8)   #8  vfs_fsync_range (fs/sync.c:188:9)   #9  vfs_fsync (fs/sync.c:202:9)   #10 do_fsync (fs/sync.c:212:9)   #11 __do_sys_fdatasync (fs/sync.c:225:9)   #12 __se_sys_fdatasync (fs/sync.c:223:1)   #13 __x64_sys_fdatasync (fs/sync.c:223:1)   #14 do_syscall_x64 (arch/x86/entry/common.c:52:14)   #15 do_syscall_64 (arch/x86/entry/common.c:83:7)   #16 entry_SYSCALL_64+0xaf/0x14c (arch/x86/entry/entry_64.S:121)  So we're logging a changed extent from fsync, which is splitting an extent in the log tree. But this split part already exists in the tree, triggering the BUG().  This is the state of the log tree at the time of the crash, dumped with drgn (https://github.com/osandov/drgn/blob/main/contrib/btrfs_tree.py) to get more details than btrfs_print_leaf() gives us:    >>> print_extent_buffer(prog.crashed_thread().stack_trace()[0][\"eb\"])   leaf 33439744 level 0 items 72 generation 9 owner 18446744073709551610   leaf 33439744 flags 0x100000000000000   fs uuid e5bd3946-400c-4223-8923-190ef1f18677   chunk uuid d58cb17e-6d02-494a-829a-18b7d8a399da           item 0 key (450 INODE_ITEM 0) itemoff 16123 itemsize 160                   generation 7 transid 9 size 8192 nbytes 8473563889606862198                   block group 0 mode 100600 links 1 uid 0 gid 0 rdev 0                   sequence 204 flags 0x10(PREALLOC)                   atime 1716417703.220000000 (2024-05-22 15:41:43)                   ctime 1716417704.983333333 (2024-05-22 15:41:44)                   mtime 1716417704.983333333 (2024-05-22 15:41:44)                   otime 17592186044416.000000000 (559444-03-08 01:40:16)           item 1 key (450 INODE_REF 256) itemoff 16110 itemsize 13                   index 195 namelen 3 name: 193           item 2 key (450 XATTR_ITEM 1640047104) itemoff 16073 itemsize 37                   location key (0 UNKNOWN.0 0) type XATTR                   transid 7 data_len 1 name_len 6                   name: user.a                   data a           item 3 key (450 EXTENT_DATA 0) itemoff 16020 itemsize 53                   generation 9 type 1 (regular)                   extent data disk byte 303144960 nr 12288                   extent data offset 0 nr 4096 ram 12288                   extent compression 0 (none)           item 4 key (450 EXTENT_DATA 4096) itemoff 15967 itemsize 53                   generation 9 type 2 (prealloc)                   prealloc data disk byte 303144960 nr 12288                   prealloc data offset 4096 nr 8192           item 5 key (450 EXTENT_DATA 8192) itemoff 15914 itemsize 53                   generation 9 type 2 (prealloc)                   prealloc data disk byte 303144960 nr 12288                   prealloc data offset 8192 nr 4096   ...  So the real problem happened earlier: notice that items 4 (4k-12k) and 5 (8k-12k) overlap. Both are prealloc extents. Item 4 straddles i_size and item 5 starts at i_size.  Here is the state of ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-06-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68220",
                        "url": "https://ubuntu.com/security/CVE-2025-68220",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: ethernet: ti: netcp: Standardize knav_dma_open_channel to return NULL on error  Make knav_dma_open_channel consistently return NULL on error instead of ERR_PTR. Currently the header include/linux/soc/ti/knav_dma.h returns NULL when the driver is disabled, but the driver implementation does not even return NULL or ERR_PTR on failure, causing inconsistency in the users. This results in a crash in netcp_free_navigator_resources as followed (trimmed):  Unhandled fault: alignment exception (0x221) at 0xfffffff2 [fffffff2] *pgd=80000800207003, *pmd=82ffda003, *pte=00000000 Internal error: : 221 [#1] SMP ARM Modules linked in: CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.17.0-rc7 #1 NONE Hardware name: Keystone PC is at knav_dma_close_channel+0x30/0x19c LR is at netcp_free_navigator_resources+0x2c/0x28c  [... TRIM...]  Call trace:  knav_dma_close_channel from netcp_free_navigator_resources+0x2c/0x28c  netcp_free_navigator_resources from netcp_ndo_open+0x430/0x46c  netcp_ndo_open from __dev_open+0x114/0x29c  __dev_open from __dev_change_flags+0x190/0x208  __dev_change_flags from netif_change_flags+0x1c/0x58  netif_change_flags from dev_change_flags+0x38/0xa0  dev_change_flags from ip_auto_config+0x2c4/0x11f0  ip_auto_config from do_one_initcall+0x58/0x200  do_one_initcall from kernel_init_freeable+0x1cc/0x238  kernel_init_freeable from kernel_init+0x1c/0x12c  kernel_init from ret_from_fork+0x14/0x38 [... TRIM...]  Standardize the error handling by making the function return NULL on all error conditions. The API is used in just the netcp_core.c so the impact is limited.  Note, this change, in effect reverts commit 5b6cb43b4d62 (\"net: ethernet: ti: netcp_core: return error while dma channel open issue\"), but provides a less error prone implementation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40272",
                        "url": "https://ubuntu.com/security/CVE-2025-40272",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/secretmem: fix use-after-free race in fault handler  When a page fault occurs in a secret memory file created with `memfd_secret(2)`, the kernel will allocate a new folio for it, mark the underlying page as not-present in the direct map, and add it to the file mapping.  If two tasks cause a fault in the same page concurrently, both could end up allocating a folio and removing the page from the direct map, but only one would succeed in adding the folio to the file mapping.  The task that failed undoes the effects of its attempt by (a) freeing the folio again and (b) putting the page back into the direct map.  However, by doing these two operations in this order, the page becomes available to the allocator again before it is placed back in the direct mapping.  If another task attempts to allocate the page between (a) and (b), and the kernel tries to access it via the direct map, it would result in a supervisor not-present page fault.  Fix the ordering to restore the direct map before the folio is freed.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40248",
                        "url": "https://ubuntu.com/security/CVE-2025-40248",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock: Ignore signal/timeout on connect() if already established  During connect(), acting on a signal/timeout by disconnecting an already established socket leads to several issues:  1. connect() invoking vsock_transport_cancel_pkt() ->    virtio_transport_purge_skbs() may race with sendmsg() invoking    virtio_transport_get_credit(). This results in a permanently elevated    `vvs->bytes_unsent`. Which, in turn, confuses the SOCK_LINGER handling.  2. connect() resetting a connected socket's state may race with socket    being placed in a sockmap. A disconnected socket remaining in a sockmap    breaks sockmap's assumptions. And gives rise to WARNs.  3. connect() transitioning SS_CONNECTED -> SS_UNCONNECTED allows for a    transport change/drop after TCP_ESTABLISHED. Which poses a problem for    any simultaneous sendmsg() or connect() and may result in a    use-after-free/null-ptr-deref.  Do not disconnect socket on signal/timeout. Keep the logic for unconnected sockets: they don't linger, can't be placed in a sockmap, are rejected by sendmsg().  [1]: https://lore.kernel.org/netdev/e07fd95c-9a38-4eea-9638-133e38c2ec9b@rbox.co/ [2]: https://lore.kernel.org/netdev/20250317-vsock-trans-signal-race-v4-0-fc8837f3f1d4@rbox.co/ [3]: https://lore.kernel.org/netdev/60f1b7db-3099-4f6a-875e-af9f6ef194f6@rbox.co/",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40252",
                        "url": "https://ubuntu.com/security/CVE-2025-40252",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: qlogic/qede: fix potential out-of-bounds read in qede_tpa_cont() and qede_tpa_end()  The loops in 'qede_tpa_cont()' and 'qede_tpa_end()', iterate over 'cqe->len_list[]' using only a zero-length terminator as the stopping condition. If the terminator was missing or malformed, the loop could run past the end of the fixed-size array.  Add an explicit bound check using ARRAY_SIZE() in both loops to prevent a potential out-of-bounds access.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40253",
                        "url": "https://ubuntu.com/security/CVE-2025-40253",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  s390/ctcm: Fix double-kfree  The function 'mpc_rcvd_sweep_req(mpcginfo)' is called conditionally from function 'ctcmpc_unpack_skb'. It frees passed mpcginfo. After that a call to function 'kfree' in function 'ctcmpc_unpack_skb' frees it again.  Remove 'kfree' call in function 'mpc_rcvd_sweep_req(mpcginfo)'.  Bug detected by the clang static analyzer.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40254",
                        "url": "https://ubuntu.com/security/CVE-2025-40254",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: openvswitch: remove never-working support for setting nsh fields  The validation of the set(nsh(...)) action is completely wrong. It runs through the nsh_key_put_from_nlattr() function that is the same function that validates NSH keys for the flow match and the push_nsh() action.  However, the set(nsh(...)) has a very different memory layout.  Nested attributes in there are doubled in size in case of the masked set().  That makes proper validation impossible.  There is also confusion in the code between the 'masked' flag, that says that the nested attributes are doubled in size containing both the value and the mask, and the 'is_mask' that says that the value we're parsing is the mask.  This is causing kernel crash on trying to write into mask part of the match with SW_FLOW_KEY_PUT() during validation, while validate_nsh() doesn't allocate any memory for it:    BUG: kernel NULL pointer dereference, address: 0000000000000018   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 1c2383067 P4D 1c2383067 PUD 20b703067 PMD 0   Oops: Oops: 0000 [#1] SMP NOPTI   CPU: 8 UID: 0 Kdump: loaded Not tainted 6.17.0-rc4+ #107 PREEMPT(voluntary)   RIP: 0010:nsh_key_put_from_nlattr+0x19d/0x610 [openvswitch]   Call Trace:    <TASK>    validate_nsh+0x60/0x90 [openvswitch]    validate_set.constprop.0+0x270/0x3c0 [openvswitch]    __ovs_nla_copy_actions+0x477/0x860 [openvswitch]    ovs_nla_copy_actions+0x8d/0x100 [openvswitch]    ovs_packet_cmd_execute+0x1cc/0x310 [openvswitch]    genl_family_rcv_msg_doit+0xdb/0x130    genl_family_rcv_msg+0x14b/0x220    genl_rcv_msg+0x47/0xa0    netlink_rcv_skb+0x53/0x100    genl_rcv+0x24/0x40    netlink_unicast+0x280/0x3b0    netlink_sendmsg+0x1f7/0x430    ____sys_sendmsg+0x36b/0x3a0    ___sys_sendmsg+0x87/0xd0    __sys_sendmsg+0x6d/0xd0    do_syscall_64+0x7b/0x2c0    entry_SYSCALL_64_after_hwframe+0x76/0x7e  The third issue with this process is that while trying to convert the non-masked set into masked one, validate_set() copies and doubles the size of the OVS_KEY_ATTR_NSH as if it didn't have any nested attributes.  It should be copying each nested attribute and doubling them in size independently.  And the process must be properly reversed during the conversion back from masked to a non-masked variant during the flow dump.  In the end, the only two outcomes of trying to use this action are either validation failure or a kernel crash.  And if somehow someone manages to install a flow with such an action, it will most definitely not do what it is supposed to, since all the keys and the masks are mixed up.  Fixing all the issues is a complex task as it requires re-writing most of the validation code.  Given that and the fact that this functionality never worked since introduction, let's just remove it altogether.  It's better to re-introduce it later with a proper implementation instead of trying to fix it in stable releases.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40258",
                        "url": "https://ubuntu.com/security/CVE-2025-40258",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fix race condition in mptcp_schedule_work()  syzbot reported use-after-free in mptcp_schedule_work() [1]  Issue here is that mptcp_schedule_work() schedules a work, then gets a refcount on sk->sk_refcnt if the work was scheduled. This refcount will be released by mptcp_worker().  [A] if (schedule_work(...)) { [B]     sock_hold(sk);         return true;     }  Problem is that mptcp_worker() can run immediately and complete before [B]  We need instead :      sock_hold(sk);     if (schedule_work(...))         return true;     sock_put(sk);  [1] refcount_t: addition on 0; use-after-free.  WARNING: CPU: 1 PID: 29 at lib/refcount.c:25 refcount_warn_saturate+0xfa/0x1d0 lib/refcount.c:25 Call Trace:  <TASK>  __refcount_add include/linux/refcount.h:-1 [inline]   __refcount_inc include/linux/refcount.h:366 [inline]   refcount_inc include/linux/refcount.h:383 [inline]   sock_hold include/net/sock.h:816 [inline]   mptcp_schedule_work+0x164/0x1a0 net/mptcp/protocol.c:943   mptcp_tout_timer+0x21/0xa0 net/mptcp/protocol.c:2316   call_timer_fn+0x17e/0x5f0 kernel/time/timer.c:1747   expire_timers kernel/time/timer.c:1798 [inline]   __run_timers kernel/time/timer.c:2372 [inline]   __run_timer_base+0x648/0x970 kernel/time/timer.c:2384   run_timer_base kernel/time/timer.c:2393 [inline]   run_timer_softirq+0xb7/0x180 kernel/time/timer.c:2403   handle_softirqs+0x22f/0x710 kernel/softirq.c:622   __do_softirq kernel/softirq.c:656 [inline]   run_ktimerd+0xcf/0x190 kernel/softirq.c:1138   smpboot_thread_fn+0x542/0xa60 kernel/smpboot.c:160   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68229",
                        "url": "https://ubuntu.com/security/CVE-2025-68229",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: tcm_loop: Fix segfault in tcm_loop_tpg_address_show()  If the allocation of tl_hba->sh fails in tcm_loop_driver_probe() and we attempt to dereference it in tcm_loop_tpg_address_show() we will get a segfault, see below for an example. So, check tl_hba->sh before dereferencing it.    Unable to allocate struct scsi_host   BUG: kernel NULL pointer dereference, address: 0000000000000194   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 0 P4D 0   Oops: 0000 [#1] PREEMPT SMP NOPTI   CPU: 1 PID: 8356 Comm: tokio-runtime-w Not tainted 6.6.104.2-4.azl3 #1   Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.1 09/28/2024   RIP: 0010:tcm_loop_tpg_address_show+0x2e/0x50 [tcm_loop] ...   Call Trace:    <TASK>    configfs_read_iter+0x12d/0x1d0 [configfs]    vfs_read+0x1b5/0x300    ksys_read+0x6f/0xf0 ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40259",
                        "url": "https://ubuntu.com/security/CVE-2025-40259",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: sg: Do not sleep in atomic context  sg_finish_rem_req() calls blk_rq_unmap_user(). The latter function may sleep. Hence, call sg_finish_rem_req() with interrupts enabled instead of disabled.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40261",
                        "url": "https://ubuntu.com/security/CVE-2025-40261",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()  nvme_fc_delete_assocation() waits for pending I/O to complete before returning, and an error can cause ->ioerr_work to be queued after cancel_work_sync() had been called.  Move the call to cancel_work_sync() to be after nvme_fc_delete_association() to ensure ->ioerr_work is not running when the nvme_fc_ctrl object is freed.  Otherwise the following can occur:  [ 1135.911754] list_del corruption, ff2d24c8093f31f8->next is NULL [ 1135.917705] ------------[ cut here ]------------ [ 1135.922336] kernel BUG at lib/list_debug.c:52! [ 1135.926784] Oops: invalid opcode: 0000 [#1] SMP NOPTI [ 1135.931851] CPU: 48 UID: 0 PID: 726 Comm: kworker/u449:23 Kdump: loaded Not tainted 6.12.0 #1 PREEMPT(voluntary) [ 1135.943490] Hardware name: Dell Inc. PowerEdge R660/0HGTK9, BIOS 2.5.4 01/16/2025 [ 1135.950969] Workqueue:  0x0 (nvme-wq) [ 1135.954673] RIP: 0010:__list_del_entry_valid_or_report.cold+0xf/0x6f [ 1135.961041] Code: c7 c7 98 68 72 94 e8 26 45 fe ff 0f 0b 48 c7 c7 70 68 72 94 e8 18 45 fe ff 0f 0b 48 89 fe 48 c7 c7 80 69 72 94 e8 07 45 fe ff <0f> 0b 48 89 d1 48 c7 c7 a0 6a 72 94 48 89 c2 e8 f3 44 fe ff 0f 0b [ 1135.979788] RSP: 0018:ff579b19482d3e50 EFLAGS: 00010046 [ 1135.985015] RAX: 0000000000000033 RBX: ff2d24c8093f31f0 RCX: 0000000000000000 [ 1135.992148] RDX: 0000000000000000 RSI: ff2d24d6bfa1d0c0 RDI: ff2d24d6bfa1d0c0 [ 1135.999278] RBP: ff2d24c8093f31f8 R08: 0000000000000000 R09: ffffffff951e2b08 [ 1136.006413] R10: ffffffff95122ac8 R11: 0000000000000003 R12: ff2d24c78697c100 [ 1136.013546] R13: fffffffffffffff8 R14: 0000000000000000 R15: ff2d24c78697c0c0 [ 1136.020677] FS:  0000000000000000(0000) GS:ff2d24d6bfa00000(0000) knlGS:0000000000000000 [ 1136.028765] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1136.034510] CR2: 00007fd207f90b80 CR3: 000000163ea22003 CR4: 0000000000f73ef0 [ 1136.041641] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 1136.048776] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400 [ 1136.055910] PKRU: 55555554 [ 1136.058623] Call Trace: [ 1136.061074]  <TASK> [ 1136.063179]  ? show_trace_log_lvl+0x1b0/0x2f0 [ 1136.067540]  ? show_trace_log_lvl+0x1b0/0x2f0 [ 1136.071898]  ? move_linked_works+0x4a/0xa0 [ 1136.075998]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.081744]  ? __die_body.cold+0x8/0x12 [ 1136.085584]  ? die+0x2e/0x50 [ 1136.088469]  ? do_trap+0xca/0x110 [ 1136.091789]  ? do_error_trap+0x65/0x80 [ 1136.095543]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.101289]  ? exc_invalid_op+0x50/0x70 [ 1136.105127]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.110874]  ? asm_exc_invalid_op+0x1a/0x20 [ 1136.115059]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.120806]  move_linked_works+0x4a/0xa0 [ 1136.124733]  worker_thread+0x216/0x3a0 [ 1136.128485]  ? __pfx_worker_thread+0x10/0x10 [ 1136.132758]  kthread+0xfa/0x240 [ 1136.135904]  ? __pfx_kthread+0x10/0x10 [ 1136.139657]  ret_from_fork+0x31/0x50 [ 1136.143236]  ? __pfx_kthread+0x10/0x10 [ 1136.146988]  ret_from_fork_asm+0x1a/0x30 [ 1136.150915]  </TASK>",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40262",
                        "url": "https://ubuntu.com/security/CVE-2025-40262",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: imx_sc_key - fix memory corruption on unload  This is supposed to be \"priv\" but we accidentally pass \"&priv\" which is an address in the stack and so it will lead to memory corruption when the imx_sc_key_action() function is called.  Remove the &.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40263",
                        "url": "https://ubuntu.com/security/CVE-2025-40263",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: cros_ec_keyb - fix an invalid memory access  If cros_ec_keyb_register_matrix() isn't called (due to `buttons_switches_only`) in cros_ec_keyb_probe(), `ckdev->idev` remains NULL.  An invalid memory access is observed in cros_ec_keyb_process() when receiving an EC_MKBP_EVENT_KEY_MATRIX event in cros_ec_keyb_work() in such case.    Unable to handle kernel read from unreadable memory at virtual address 0000000000000028   ...   x3 : 0000000000000000 x2 : 0000000000000000   x1 : 0000000000000000 x0 : 0000000000000000   Call trace:   input_event   cros_ec_keyb_work   blocking_notifier_call_chain   ec_irq_thread  It's still unknown about why the kernel receives such malformed event, in any cases, the kernel shouldn't access `ckdev->idev` and friends if the driver doesn't intend to initialize them.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40264",
                        "url": "https://ubuntu.com/security/CVE-2025-40264",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  be2net: pass wrb_params in case of OS2BMC  be_insert_vlan_in_pkt() is called with the wrb_params argument being NULL at be_send_pkt_to_bmc() call site.  This may lead to dereferencing a NULL pointer when processing a workaround for specific packet, as commit bc0c3405abbb (\"be2net: fix a Tx stall bug caused by a specific ipv6 packet\") states.  The correct way would be to pass the wrb_params from be_xmit().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68238",
                        "url": "https://ubuntu.com/security/CVE-2025-68238",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mtd: rawnand: cadence: fix DMA device NULL pointer dereference  The DMA device pointer `dma_dev` was being dereferenced before ensuring that `cdns_ctrl->dmac` is properly initialized.  Move the assignment of `dma_dev` after successfully acquiring the DMA channel to ensure the pointer is valid before use.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68734",
                        "url": "https://ubuntu.com/security/CVE-2025-68734",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  isdn: mISDN: hfcsusb: fix memory leak in hfcsusb_probe()  In hfcsusb_probe(), the memory allocated for ctrl_urb gets leaked when setup_instance() fails with an error code. Fix that by freeing the urb before freeing the hw structure. Also change the error paths to use the goto ladder style.  Compile tested only. Issue found using a prototype static analysis tool.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40269",
                        "url": "https://ubuntu.com/security/CVE-2025-40269",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix potential overflow of PCM transfer buffer  The PCM stream data in USB-audio driver is transferred over USB URB packet buffers, and each packet size is determined dynamically.  The packet sizes are limited by some factors such as wMaxPacketSize USB descriptor.  OTOH, in the current code, the actually used packet sizes are determined only by the rate and the PPS, which may be bigger than the size limit above.  This results in a buffer overflow, as reported by syzbot.  Basically when the limit is smaller than the calculated packet size, it implies that something is wrong, most likely a weird USB descriptor.  So the best option would be just to return an error at the parameter setup time before doing any further operations.  This patch introduces such a sanity check, and returns -EINVAL when the packet size is greater than maxpacksize.  The comparison with ep->packsize[1] alone should suffice since it's always equal or greater than ep->packsize[0].",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40271",
                        "url": "https://ubuntu.com/security/CVE-2025-40271",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fs/proc: fix uaf in proc_readdir_de()  Pde is erased from subdir rbtree through rb_erase(), but not set the node to EMPTY, which may result in uaf access.  We should use RB_CLEAR_NODE() set the erased node to EMPTY, then pde_subdir_next() will return NULL to avoid uaf access.  We found an uaf issue while using stress-ng testing, need to run testcase getdent and tun in the same time.  The steps of the issue is as follows:  1) use getdent to traverse dir /proc/pid/net/dev_snmp6/, and current    pde is tun3;  2) in the [time windows] unregister netdevice tun3 and tun2, and erase    them from rbtree.  erase tun3 first, and then erase tun2.  the    pde(tun2) will be released to slab;  3) continue to getdent process, then pde_subdir_next() will return    pde(tun2) which is released, it will case uaf access.  CPU 0                                      |    CPU 1 ------------------------------------------------------------------------- traverse dir /proc/pid/net/dev_snmp6/      |  unregister_netdevice(tun->dev)   //tun3 tun2 sys_getdents64()                           |   iterate_dir()                            |     proc_readdir()                         |       proc_readdir_de()                    |     snmp6_unregister_dev()         pde_get(de);                       |       proc_remove()         read_unlock(&proc_subdir_lock);    |         remove_proc_subtree()                                            |          write_lock(&proc_subdir_lock);         [time window]                      |          rb_erase(&root->subdir_node, &parent->subdir);                                            |          write_unlock(&proc_subdir_lock);         read_lock(&proc_subdir_lock);      |         next = pde_subdir_next(de);        |         pde_put(de);                       |         de = next;    //UAF                |  rbtree of dev_snmp6                         |                     pde(tun3)                      /    \\                   NULL  pde(tun2)",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68241",
                        "url": "https://ubuntu.com/security/CVE-2025-68241",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: route: Prevent rt_bind_exception() from rebinding stale fnhe  The sit driver's packet transmission path calls: sit_tunnel_xmit() -> update_or_create_fnhe(), which lead to fnhe_remove_oldest() being called to delete entries exceeding FNHE_RECLAIM_DEPTH+random.  The race window is between fnhe_remove_oldest() selecting fnheX for deletion and the subsequent kfree_rcu(). During this time, the concurrent path's __mkroute_output() -> find_exception() can fetch the soon-to-be-deleted fnheX, and rt_bind_exception() then binds it with a new dst using a dst_hold(). When the original fnheX is freed via RCU, the dst reference remains permanently leaked.  CPU 0                             CPU 1 __mkroute_output()   find_exception() [fnheX]                                   update_or_create_fnhe()                                     fnhe_remove_oldest() [fnheX]   rt_bind_exception() [bind dst]                                   RCU callback [fnheX freed, dst leak]  This issue manifests as a device reference count leak and a warning in dmesg when unregistering the net device:    unregister_netdevice: waiting for sitX to become free. Usage count = N  Ido Schimmel provided the simple test validation method [1].  The fix clears 'oldest->fnhe_daddr' before calling fnhe_flush_routes(). Since rt_bind_exception() checks this field, setting it to zero prevents the stale fnhe from being reused and bound to a new dst just before it is freed.  [1] ip netns add ns1 ip -n ns1 link set dev lo up ip -n ns1 address add 192.0.2.1/32 dev lo ip -n ns1 link add name dummy1 up type dummy ip -n ns1 route add 192.0.2.2/32 dev dummy1 ip -n ns1 link add name gretap1 up arp off type gretap \\     local 192.0.2.1 remote 192.0.2.2 ip -n ns1 route add 198.51.0.0/16 dev gretap1 taskset -c 0 ip netns exec ns1 mausezahn gretap1 \\     -A 198.51.100.1 -B 198.51.0.0/16 -t udp -p 1000 -c 0 -q & taskset -c 2 ip netns exec ns1 mausezahn gretap1 \\     -A 198.51.100.1 -B 198.51.0.0/16 -t udp -p 1000 -c 0 -q & sleep 10 ip netns pids ns1 | xargs kill ip netns del ns1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40273",
                        "url": "https://ubuntu.com/security/CVE-2025-40273",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: free copynotify stateid in nfs4_free_ol_stateid()  Typically copynotify stateid is freed either when parent's stateid is being close/freed or in nfsd4_laundromat if the stateid hasn't been used in a lease period.  However, in case when the server got an OPEN (which created a parent stateid), followed by a COPY_NOTIFY using that stateid, followed by a client reboot. New client instance while doing CREATE_SESSION would force expire previous state of this client. It leads to the open state being freed thru release_openowner-> nfs4_free_ol_stateid() and it finds that it still has copynotify stateid associated with it. We currently print a warning and is triggerred  WARNING: CPU: 1 PID: 8858 at fs/nfsd/nfs4state.c:1550 nfs4_free_ol_stateid+0xb0/0x100 [nfsd]  This patch, instead, frees the associated copynotify stateid here.  If the parent stateid is freed (without freeing the copynotify stateids associated with it), it leads to the list corruption when laundromat ends up freeing the copynotify state later.  [ 1626.839430] Internal error: Oops - BUG: 00000000f2000800 [#1]  SMP [ 1626.842828] Modules linked in: nfnetlink_queue nfnetlink_log bluetooth cfg80211 rpcrdma rdma_cm iw_cm ib_cm ib_core nfsd nfs_acl lockd grace nfs_localio ext4 crc16 mbcache jbd2 overlay uinput snd_seq_dummy snd_hrtimer qrtr rfkill vfat fat uvcvideo snd_hda_codec_generic videobuf2_vmalloc videobuf2_memops snd_hda_intel uvc snd_intel_dspcfg videobuf2_v4l2 videobuf2_common snd_hda_codec snd_hda_core videodev snd_hwdep snd_seq mc snd_seq_device snd_pcm snd_timer snd soundcore sg loop auth_rpcgss vsock_loopback vmw_vsock_virtio_transport_common vmw_vsock_vmci_transport vmw_vmci vsock xfs 8021q garp stp llc mrp nvme ghash_ce e1000e nvme_core sr_mod nvme_keyring nvme_auth cdrom vmwgfx drm_ttm_helper ttm sunrpc dm_mirror dm_region_hash dm_log iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi fuse dm_multipath dm_mod nfnetlink [ 1626.855594] CPU: 2 UID: 0 PID: 199 Comm: kworker/u24:33 Kdump: loaded Tainted: G    B   W           6.17.0-rc7+ #22 PREEMPT(voluntary) [ 1626.857075] Tainted: [B]=BAD_PAGE, [W]=WARN [ 1626.857573] Hardware name: VMware, Inc. VMware20,1/VBSA, BIOS VMW201.00V.24006586.BA64.2406042154 06/04/2024 [ 1626.858724] Workqueue: nfsd4 laundromat_main [nfsd] [ 1626.859304] pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) [ 1626.860010] pc : __list_del_entry_valid_or_report+0x148/0x200 [ 1626.860601] lr : __list_del_entry_valid_or_report+0x148/0x200 [ 1626.861182] sp : ffff8000881d7a40 [ 1626.861521] x29: ffff8000881d7a40 x28: 0000000000000018 x27: ffff0000c2a98200 [ 1626.862260] x26: 0000000000000600 x25: 0000000000000000 x24: ffff8000881d7b20 [ 1626.862986] x23: ffff0000c2a981e8 x22: 1fffe00012410e7d x21: ffff0000920873e8 [ 1626.863701] x20: ffff0000920873e8 x19: ffff000086f22998 x18: 0000000000000000 [ 1626.864421] x17: 20747562202c3839 x16: 3932326636383030 x15: 3030666666662065 [ 1626.865092] x14: 6220646c756f6873 x13: 0000000000000001 x12: ffff60004fd9e4a3 [ 1626.865713] x11: 1fffe0004fd9e4a2 x10: ffff60004fd9e4a2 x9 : dfff800000000000 [ 1626.866320] x8 : 00009fffb0261b5e x7 : ffff00027ecf2513 x6 : 0000000000000001 [ 1626.866938] x5 : ffff00027ecf2510 x4 : ffff60004fd9e4a3 x3 : 0000000000000000 [ 1626.867553] x2 : 0000000000000000 x1 : ffff000096069640 x0 : 000000000000006d [ 1626.868167] Call trace: [ 1626.868382]  __list_del_entry_valid_or_report+0x148/0x200 (P) [ 1626.868876]  _free_cpntf_state_locked+0xd0/0x268 [nfsd] [ 1626.869368]  nfs4_laundromat+0x6f8/0x1058 [nfsd] [ 1626.869813]  laundromat_main+0x24/0x60 [nfsd] [ 1626.870231]  process_one_work+0x584/0x1050 [ 1626.870595]  worker_thread+0x4c4/0xc60 [ 1626.870893]  kthread+0x2f8/0x398 [ 1626.871146]  ret_from_fork+0x10/0x20 [ 1626.871422] Code: aa1303e1 aa1403e3 910e8000 97bc55d7 (d4210000) [ 1626.871892] SMP: stopping secondary CPUs",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40040",
                        "url": "https://ubuntu.com/security/CVE-2025-40040",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/ksm: fix flag-dropping behavior in ksm_madvise  syzkaller discovered the following crash: (kernel BUG)  [   44.607039] ------------[ cut here ]------------ [   44.607422] kernel BUG at mm/userfaultfd.c:2067! [   44.608148] Oops: invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN NOPTI [   44.608814] CPU: 1 UID: 0 PID: 2475 Comm: reproducer Not tainted 6.16.0-rc6 #1 PREEMPT(none) [   44.609635] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [   44.610695] RIP: 0010:userfaultfd_release_all+0x3a8/0x460  <snip other registers, drop unreliable trace>  [   44.617726] Call Trace: [   44.617926]  <TASK> [   44.619284]  userfaultfd_release+0xef/0x1b0 [   44.620976]  __fput+0x3f9/0xb60 [   44.621240]  fput_close_sync+0x110/0x210 [   44.622222]  __x64_sys_close+0x8f/0x120 [   44.622530]  do_syscall_64+0x5b/0x2f0 [   44.622840]  entry_SYSCALL_64_after_hwframe+0x76/0x7e [   44.623244] RIP: 0033:0x7f365bb3f227  Kernel panics because it detects UFFD inconsistency during userfaultfd_release_all().  Specifically, a VMA which has a valid pointer to vma->vm_userfaultfd_ctx, but no UFFD flags in vma->vm_flags.  The inconsistency is caused in ksm_madvise(): when user calls madvise() with MADV_UNMEARGEABLE on a VMA that is registered for UFFD in MINOR mode, it accidentally clears all flags stored in the upper 32 bits of vma->vm_flags.  Assuming x86_64 kernel build, unsigned long is 64-bit and unsigned int and int are 32-bit wide.  This setup causes the following mishap during the &= ~VM_MERGEABLE assignment.  VM_MERGEABLE is a 32-bit constant of type unsigned int, 0x8000'0000. After ~ is applied, it becomes 0x7fff'ffff unsigned int, which is then promoted to unsigned long before the & operation.  This promotion fills upper 32 bits with leading 0s, as we're doing unsigned conversion (and even for a signed conversion, this wouldn't help as the leading bit is 0). & operation thus ends up AND-ing vm_flags with 0x0000'0000'7fff'ffff instead of intended 0xffff'ffff'7fff'ffff and hence accidentally clears the upper 32-bits of its value.  Fix it by changing `VM_MERGEABLE` constant to unsigned long, using the BIT() macro.  Note: other VM_* flags are not affected: This only happens to the VM_MERGEABLE flag, as the other VM_* flags are all constants of type int and after ~ operation, they end up with leading 1 and are thus converted to unsigned long with leading 1s.  Note 2: After commit 31defc3b01d9 (\"userfaultfd: remove (VM_)BUG_ON()s\"), this is no longer a kernel BUG, but a WARNING at the same place:  [   45.595973] WARNING: CPU: 1 PID: 2474 at mm/userfaultfd.c:2067  but the root-cause (flag-drop) remains the same.  [akpm@linux-foundation.org: rust bindgen wasn't able to handle BIT(), from Miguel]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-28 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68200",
                        "url": "https://ubuntu.com/security/CVE-2025-68200",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Add bpf_prog_run_data_pointers()  syzbot found that cls_bpf_classify() is able to change tc_skb_cb(skb)->drop_reason triggering a warning in sk_skb_reason_drop().  WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 __sk_skb_reason_drop net/core/skbuff.c:1189 [inline] WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 sk_skb_reason_drop+0x76/0x170 net/core/skbuff.c:1214  struct tc_skb_cb has been added in commit ec624fe740b4 (\"net/sched: Extend qdisc control block with tc control block\"), which added a wrong interaction with db58ba459202 (\"bpf: wire in data and data_end for cls_act_bpf\").  drop_reason was added later.  Add bpf_prog_run_data_pointers() helper to save/restore the net_sched storage colliding with BPF data_meta/data_end.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40275",
                        "url": "https://ubuntu.com/security/CVE-2025-40275",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix NULL pointer dereference in snd_usb_mixer_controls_badd  In snd_usb_create_streams(), for UAC version 3 devices, the Interface Association Descriptor (IAD) is retrieved via usb_ifnum_to_if(). If this call fails, a fallback routine attempts to obtain the IAD from the next interface and sets a BADD profile. However, snd_usb_mixer_controls_badd() assumes that the IAD retrieved from usb_ifnum_to_if() is always valid, without performing a NULL check. This can lead to a NULL pointer dereference when usb_ifnum_to_if() fails to find the interface descriptor.  This patch adds a NULL pointer check after calling usb_ifnum_to_if() in snd_usb_mixer_controls_badd() to prevent the dereference.  This issue was discovered by syzkaller, which triggered the bug by sending a crafted USB device descriptor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40277",
                        "url": "https://ubuntu.com/security/CVE-2025-40277",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vmwgfx: Validate command header size against SVGA_CMD_MAX_DATASIZE  This data originates from userspace and is used in buffer offset calculations which could potentially overflow causing an out-of-bounds access.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40278",
                        "url": "https://ubuntu.com/security/CVE-2025-40278",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak  Fix a KMSAN kernel-infoleak detected  by the syzbot .  [net?] KMSAN: kernel-infoleak in __skb_datagram_iter  In tcf_ife_dump(), the variable 'opt' was partially initialized using a designatied initializer. While the padding bytes are reamined uninitialized. nla_put() copies the entire structure into a netlink message, these uninitialized bytes leaked to userspace.  Initialize the structure with memset before assigning its fields to ensure all members and padding are cleared prior to beign copied.  This change silences the KMSAN report and prevents potential information leaks from the kernel memory.  This fix has been tested and validated by syzbot. This patch closes the bug reported at the following syzkaller link and ensures no infoleak.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40279",
                        "url": "https://ubuntu.com/security/CVE-2025-40279",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: act_connmark: initialize struct tc_ife to fix kernel leak  In tcf_connmark_dump(), the variable 'opt' was partially initialized using a designatied initializer. While the padding bytes are reamined uninitialized. nla_put() copies the entire structure into a netlink message, these uninitialized bytes leaked to userspace.  Initialize the structure with memset before assigning its fields to ensure all members and padding are cleared prior to beign copied.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40280",
                        "url": "https://ubuntu.com/security/CVE-2025-40280",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tipc: Fix use-after-free in tipc_mon_reinit_self().  syzbot reported use-after-free of tipc_net(net)->monitors[] in tipc_mon_reinit_self(). [0]  The array is protected by RTNL, but tipc_mon_reinit_self() iterates over it without RTNL.  tipc_mon_reinit_self() is called from tipc_net_finalize(), which is always under RTNL except for tipc_net_finalize_work().  Let's hold RTNL in tipc_net_finalize_work().  [0]: BUG: KASAN: slab-use-after-free in __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] BUG: KASAN: slab-use-after-free in _raw_spin_lock_irqsave+0xa7/0xf0 kernel/locking/spinlock.c:162 Read of size 1 at addr ffff88805eae1030 by task kworker/0:7/5989  CPU: 0 UID: 0 PID: 5989 Comm: kworker/0:7 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025 Workqueue: events tipc_net_finalize_work Call Trace:  <TASK>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0xca/0x240 mm/kasan/report.c:482  kasan_report+0x118/0x150 mm/kasan/report.c:595  __kasan_check_byte+0x2a/0x40 mm/kasan/common.c:568  kasan_check_byte include/linux/kasan.h:399 [inline]  lock_acquire+0x8d/0x360 kernel/locking/lockdep.c:5842  __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]  _raw_spin_lock_irqsave+0xa7/0xf0 kernel/locking/spinlock.c:162  rtlock_slowlock kernel/locking/rtmutex.c:1894 [inline]  rwbase_rtmutex_lock_state kernel/locking/spinlock_rt.c:160 [inline]  rwbase_write_lock+0xd3/0x7e0 kernel/locking/rwbase_rt.c:244  rt_write_lock+0x76/0x110 kernel/locking/spinlock_rt.c:243  write_lock_bh include/linux/rwlock_rt.h:99 [inline]  tipc_mon_reinit_self+0x79/0x430 net/tipc/monitor.c:718  tipc_net_finalize+0x115/0x190 net/tipc/net.c:140  process_one_work kernel/workqueue.c:3236 [inline]  process_scheduled_works+0xade/0x17b0 kernel/workqueue.c:3319  worker_thread+0x8a0/0xda0 kernel/workqueue.c:3400  kthread+0x70e/0x8a0 kernel/kthread.c:463  ret_from_fork+0x439/0x7d0 arch/x86/kernel/process.c:148  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 6089:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x3e/0x80 mm/kasan/common.c:68  poison_kmalloc_redzone mm/kasan/common.c:388 [inline]  __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:405  kasan_kmalloc include/linux/kasan.h:260 [inline]  __kmalloc_cache_noprof+0x1a8/0x320 mm/slub.c:4407  kmalloc_noprof include/linux/slab.h:905 [inline]  kzalloc_noprof include/linux/slab.h:1039 [inline]  tipc_mon_create+0xc3/0x4d0 net/tipc/monitor.c:657  tipc_enable_bearer net/tipc/bearer.c:357 [inline]  __tipc_nl_bearer_enable+0xe16/0x13f0 net/tipc/bearer.c:1047  __tipc_nl_compat_doit net/tipc/netlink_compat.c:371 [inline]  tipc_nl_compat_doit+0x3bc/0x5f0 net/tipc/netlink_compat.c:393  tipc_nl_compat_handle net/tipc/netlink_compat.c:-1 [inline]  tipc_nl_compat_recv+0x83c/0xbe0 net/tipc/netlink_compat.c:1321  genl_family_rcv_msg_doit+0x215/0x300 net/netlink/genetlink.c:1115  genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]  genl_rcv_msg+0x60e/0x790 net/netlink/genetlink.c:1210  netlink_rcv_skb+0x208/0x470 net/netlink/af_netlink.c:2552  genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219  netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]  netlink_unicast+0x846/0xa10 net/netlink/af_netlink.c:1346  netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1896  sock_sendmsg_nosec net/socket.c:714 [inline]  __sock_sendmsg+0x21c/0x270 net/socket.c:729  ____sys_sendmsg+0x508/0x820 net/socket.c:2614  ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2668  __sys_sendmsg net/socket.c:2700 [inline]  __do_sys_sendmsg net/socket.c:2705 [inline]  __se_sys_sendmsg net/socket.c:2703 [inline]  __x64_sys_sendmsg+0x1a1/0x260 net/socket.c:2703  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0x3b0 arch/ ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40281",
                        "url": "https://ubuntu.com/security/CVE-2025-40281",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: prevent possible shift-out-of-bounds in sctp_transport_update_rto  syzbot reported a possible shift-out-of-bounds [1]  Blamed commit added rto_alpha_max and rto_beta_max set to 1000.  It is unclear if some sctp users are setting very large rto_alpha and/or rto_beta.  In order to prevent user regression, perform the test at run time.  Also add READ_ONCE() annotations as sysctl values can change under us.  [1]  UBSAN: shift-out-of-bounds in net/sctp/transport.c:509:41 shift exponent 64 is too large for 32-bit type 'unsigned int' CPU: 0 UID: 0 PID: 16704 Comm: syz.2.2320 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 Call Trace:  <TASK>   __dump_stack lib/dump_stack.c:94 [inline]   dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120   ubsan_epilogue lib/ubsan.c:233 [inline]   __ubsan_handle_shift_out_of_bounds+0x27f/0x420 lib/ubsan.c:494   sctp_transport_update_rto.cold+0x1c/0x34b net/sctp/transport.c:509   sctp_check_transmitted+0x11c4/0x1c30 net/sctp/outqueue.c:1502   sctp_outq_sack+0x4ef/0x1b20 net/sctp/outqueue.c:1338   sctp_cmd_process_sack net/sctp/sm_sideeffect.c:840 [inline]   sctp_cmd_interpreter net/sctp/sm_sideeffect.c:1372 [inline]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40282",
                        "url": "https://ubuntu.com/security/CVE-2025-40282",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: 6lowpan: reset link-local header on ipv6 recv path  Bluetooth 6lowpan.c netdev has header_ops, so it must set link-local header for RX skb, otherwise things crash, eg. with AF_PACKET SOCK_RAW  Add missing skb_reset_mac_header() for uncompressed ipv6 RX path.  For the compressed one, it is done in lowpan_header_decompress().  Log: (BlueZ 6lowpan-tester Client Recv Raw - Success) ------ kernel BUG at net/core/skbuff.c:212! Call Trace: <IRQ> ... packet_rcv (net/packet/af_packet.c:2152) ... <TASK> __local_bh_enable_ip (kernel/softirq.c:407) netif_rx (net/core/dev.c:5648) chan_recv_cb (net/bluetooth/6lowpan.c:294 net/bluetooth/6lowpan.c:359) ------",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40283",
                        "url": "https://ubuntu.com/security/CVE-2025-40283",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: btusb: reorder cleanup in btusb_disconnect to avoid UAF  There is a KASAN: slab-use-after-free read in btusb_disconnect(). Calling \"usb_driver_release_interface(&btusb_driver, data->intf)\" will free the btusb data associated with the interface. The same data is then used later in the function, hence the UAF.  Fix by moving the accesses to btusb data to before the data is free'd.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68244",
                        "url": "https://ubuntu.com/security/CVE-2025-68244",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915: Avoid lock inversion when pinning to GGTT on CHV/BXT+VTD  On completion of i915_vma_pin_ww(), a synchronous variant of dma_fence_work_commit() is called.  When pinning a VMA to GGTT address space on a Cherry View family processor, or on a Broxton generation SoC with VTD enabled, i.e., when stop_machine() is then called from intel_ggtt_bind_vma(), that can potentially lead to lock inversion among reservation_ww and cpu_hotplug locks.  [86.861179] ====================================================== [86.861193] WARNING: possible circular locking dependency detected [86.861209] 6.15.0-rc5-CI_DRM_16515-gca0305cadc2d+ #1 Tainted: G     U [86.861226] ------------------------------------------------------ [86.861238] i915_module_loa/1432 is trying to acquire lock: [86.861252] ffffffff83489090 (cpu_hotplug_lock){++++}-{0:0}, at: stop_machine+0x1c/0x50 [86.861290] but task is already holding lock: [86.861303] ffffc90002e0b4c8 (reservation_ww_class_mutex){+.+.}-{3:3}, at: i915_vma_pin.constprop.0+0x39/0x1d0 [i915] [86.862233] which lock already depends on the new lock. [86.862251] the existing dependency chain (in reverse order) is: [86.862265] -> #5 (reservation_ww_class_mutex){+.+.}-{3:3}: [86.862292]        dma_resv_lockdep+0x19a/0x390 [86.862315]        do_one_initcall+0x60/0x3f0 [86.862334]        kernel_init_freeable+0x3cd/0x680 [86.862353]        kernel_init+0x1b/0x200 [86.862369]        ret_from_fork+0x47/0x70 [86.862383]        ret_from_fork_asm+0x1a/0x30 [86.862399] -> #4 (reservation_ww_class_acquire){+.+.}-{0:0}: [86.862425]        dma_resv_lockdep+0x178/0x390 [86.862440]        do_one_initcall+0x60/0x3f0 [86.862454]        kernel_init_freeable+0x3cd/0x680 [86.862470]        kernel_init+0x1b/0x200 [86.862482]        ret_from_fork+0x47/0x70 [86.862495]        ret_from_fork_asm+0x1a/0x30 [86.862509] -> #3 (&mm->mmap_lock){++++}-{3:3}: [86.862531]        down_read_killable+0x46/0x1e0 [86.862546]        lock_mm_and_find_vma+0xa2/0x280 [86.862561]        do_user_addr_fault+0x266/0x8e0 [86.862578]        exc_page_fault+0x8a/0x2f0 [86.862593]        asm_exc_page_fault+0x27/0x30 [86.862607]        filldir64+0xeb/0x180 [86.862620]        kernfs_fop_readdir+0x118/0x480 [86.862635]        iterate_dir+0xcf/0x2b0 [86.862648]        __x64_sys_getdents64+0x84/0x140 [86.862661]        x64_sys_call+0x1058/0x2660 [86.862675]        do_syscall_64+0x91/0xe90 [86.862689]        entry_SYSCALL_64_after_hwframe+0x76/0x7e [86.862703] -> #2 (&root->kernfs_rwsem){++++}-{3:3}: [86.862725]        down_write+0x3e/0xf0 [86.862738]        kernfs_add_one+0x30/0x3c0 [86.862751]        kernfs_create_dir_ns+0x53/0xb0 [86.862765]        internal_create_group+0x134/0x4c0 [86.862779]        sysfs_create_group+0x13/0x20 [86.862792]        topology_add_dev+0x1d/0x30 [86.862806]        cpuhp_invoke_callback+0x4b5/0x850 [86.862822]        cpuhp_issue_call+0xbf/0x1f0 [86.862836]        __cpuhp_setup_state_cpuslocked+0x111/0x320 [86.862852]        __cpuhp_setup_state+0xb0/0x220 [86.862866]        topology_sysfs_init+0x30/0x50 [86.862879]        do_one_initcall+0x60/0x3f0 [86.862893]        kernel_init_freeable+0x3cd/0x680 [86.862908]        kernel_init+0x1b/0x200 [86.862921]        ret_from_fork+0x47/0x70 [86.862934]        ret_from_fork_asm+0x1a/0x30 [86.862947] -> #1 (cpuhp_state_mutex){+.+.}-{3:3}: [86.862969]        __mutex_lock+0xaa/0xed0 [86.862982]        mutex_lock_nested+0x1b/0x30 [86.862995]        __cpuhp_setup_state_cpuslocked+0x67/0x320 [86.863012]        __cpuhp_setup_state+0xb0/0x220 [86.863026]        page_alloc_init_cpuhp+0x2d/0x60 [86.863041]        mm_core_init+0x22/0x2d0 [86.863054]        start_kernel+0x576/0xbd0 [86.863068]        x86_64_start_reservations+0x18/0x30 [86.863084]        x86_64_start_kernel+0xbf/0x110 [86.863098]        common_startup_64+0x13e/0x141 [86.863114] -> #0 (cpu_hotplug_lock){++++}-{0:0}: [86.863135]        __lock_acquire+0x16 ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68192",
                        "url": "https://ubuntu.com/security/CVE-2025-68192",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: qmi_wwan: initialize MAC header offset in qmimux_rx_fixup  Raw IP packets have no MAC header, leaving skb->mac_header uninitialized. This can trigger kernel panics on ARM64 when xfrm or other subsystems access the offset due to strict alignment checks.  Initialize the MAC header to prevent such crashes.  This can trigger kernel panics on ARM when running IPsec over the qmimux0 interface.  Example trace:      Internal error: Oops: 000000009600004f [#1] SMP     CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.12.34-gbe78e49cb433 #1     Hardware name: LS1028A RDB Board (DT)     pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)     pc : xfrm_input+0xde8/0x1318     lr : xfrm_input+0x61c/0x1318     sp : ffff800080003b20     Call trace:      xfrm_input+0xde8/0x1318      xfrm6_rcv+0x38/0x44      xfrm6_esp_rcv+0x48/0xa8      ip6_protocol_deliver_rcu+0x94/0x4b0      ip6_input_finish+0x44/0x70      ip6_input+0x44/0xc0      ipv6_rcv+0x6c/0x114      __netif_receive_skb_one_core+0x5c/0x8c      __netif_receive_skb+0x18/0x60      process_backlog+0x78/0x17c      __napi_poll+0x38/0x180      net_rx_action+0x168/0x2f0",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40331",
                        "url": "https://ubuntu.com/security/CVE-2025-40331",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: Prevent TOCTOU out-of-bounds write  For the following path not holding the sock lock,    sctp_diag_dump() -> sctp_for_each_endpoint() -> sctp_ep_dump()  make sure not to exceed bounds in case the address list has grown between buffer allocation (time-of-check) and write (time-of-use).",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-09 16:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40304",
                        "url": "https://ubuntu.com/security/CVE-2025-40304",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fbdev: Add bounds checking in bit_putcs to fix vmalloc-out-of-bounds  Add bounds checking to prevent writes past framebuffer boundaries when rendering text near screen edges. Return early if the Y position is off-screen and clip image height to screen boundary. Break from the rendering loop if the X position is off-screen. When clipping image width to fit the screen, update the character count to match the clipped width to prevent buffer size mismatches.  Without the character count update, bit_putcs_aligned and bit_putcs_unaligned receive mismatched parameters where the buffer is allocated for the clipped width but cnt reflects the original larger count, causing out-of-bounds writes.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40306",
                        "url": "https://ubuntu.com/security/CVE-2025-40306",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  orangefs: fix xattr related buffer overflow...  Willy Tarreau <w@1wt.eu> forwarded me a message from Disclosure <disclosure@aisle.com> with the following warning:  > The helper `xattr_key()` uses the pointer variable in the loop condition > rather than dereferencing it. As `key` is incremented, it remains non-NULL > (until it runs into unmapped memory), so the loop does not terminate on > valid C strings and will walk memory indefinitely, consuming CPU or hanging > the thread.  I easily reproduced this with setfattr and getfattr, causing a kernel oops, hung user processes and corrupted orangefs files. Disclosure sent along a diff (not a patch) with a suggested fix, which I based this patch on.  After xattr_key started working right, xfstest generic/069 exposed an xattr related memory leak that lead to OOM. xattr_key returns a hashed key.  When adding xattrs to the orangefs xattr cache, orangefs used hash_add, a kernel hashing macro. hash_add also hashes the key using hash_log which resulted in additions to the xattr cache going to the wrong hash bucket. generic/069 tortures a single file and orangefs does a getattr for the xattr \"security.capability\" every time. Orangefs negative caches on xattrs which includes a kmalloc. Since adds to the xattr cache were going to the wrong bucket, every getattr for \"security.capability\" resulted in another kmalloc, none of which were ever freed.  I changed the two uses of hash_add to hlist_add_head instead and the memory leak ceased and generic/069 quit throwing furniture.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40308",
                        "url": "https://ubuntu.com/security/CVE-2025-40308",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: bcsp: receive data only if registered  Currently, bcsp_recv() can be called even when the BCSP protocol has not been registered. This leads to a NULL pointer dereference, as shown in the following stack trace:      KASAN: null-ptr-deref in range [0x0000000000000108-0x000000000000010f]     RIP: 0010:bcsp_recv+0x13d/0x1740 drivers/bluetooth/hci_bcsp.c:590     Call Trace:      <TASK>      hci_uart_tty_receive+0x194/0x220 drivers/bluetooth/hci_ldisc.c:627      tiocsti+0x23c/0x2c0 drivers/tty/tty_io.c:2290      tty_ioctl+0x626/0xde0 drivers/tty/tty_io.c:2706      vfs_ioctl fs/ioctl.c:51 [inline]      __do_sys_ioctl fs/ioctl.c:907 [inline]      __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:893      do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]      do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94      entry_SYSCALL_64_after_hwframe+0x77/0x7f  To prevent this, ensure that the HCI_UART_REGISTERED flag is set before processing received data. If the protocol is not registered, return -EUNATCH.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40309",
                        "url": "https://ubuntu.com/security/CVE-2025-40309",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: SCO: Fix UAF on sco_conn_free  BUG: KASAN: slab-use-after-free in sco_conn_free net/bluetooth/sco.c:87 [inline] BUG: KASAN: slab-use-after-free in kref_put include/linux/kref.h:65 [inline] BUG: KASAN: slab-use-after-free in sco_conn_put+0xdd/0x410 net/bluetooth/sco.c:107 Write of size 8 at addr ffff88811cb96b50 by task kworker/u17:4/352  CPU: 1 UID: 0 PID: 352 Comm: kworker/u17:4 Not tainted 6.17.0-rc5-g717368f83676 #4 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 Workqueue: hci13 hci_cmd_sync_work Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x10b/0x170 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0x191/0x550 mm/kasan/report.c:482  kasan_report+0xc4/0x100 mm/kasan/report.c:595  sco_conn_free net/bluetooth/sco.c:87 [inline]  kref_put include/linux/kref.h:65 [inline]  sco_conn_put+0xdd/0x410 net/bluetooth/sco.c:107  sco_connect_cfm+0xb4/0xae0 net/bluetooth/sco.c:1441  hci_connect_cfm include/net/bluetooth/hci_core.h:2082 [inline]  hci_conn_failed+0x20a/0x2e0 net/bluetooth/hci_conn.c:1313  hci_conn_unlink+0x55f/0x810 net/bluetooth/hci_conn.c:1121  hci_conn_del+0xb6/0x1110 net/bluetooth/hci_conn.c:1147  hci_abort_conn_sync+0x8c5/0xbb0 net/bluetooth/hci_sync.c:5689  hci_cmd_sync_work+0x281/0x380 net/bluetooth/hci_sync.c:332  process_one_work kernel/workqueue.c:3236 [inline]  process_scheduled_works+0x77e/0x1040 kernel/workqueue.c:3319  worker_thread+0xbee/0x1200 kernel/workqueue.c:3400  kthread+0x3c7/0x870 kernel/kthread.c:463  ret_from_fork+0x13a/0x1e0 arch/x86/kernel/process.c:148  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 31370:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x30/0x70 mm/kasan/common.c:68  poison_kmalloc_redzone mm/kasan/common.c:388 [inline]  __kasan_kmalloc+0x82/0x90 mm/kasan/common.c:405  kasan_kmalloc include/linux/kasan.h:260 [inline]  __do_kmalloc_node mm/slub.c:4382 [inline]  __kmalloc_noprof+0x22f/0x390 mm/slub.c:4394  kmalloc_noprof include/linux/slab.h:909 [inline]  sk_prot_alloc+0xae/0x220 net/core/sock.c:2239  sk_alloc+0x34/0x5a0 net/core/sock.c:2295  bt_sock_alloc+0x3c/0x330 net/bluetooth/af_bluetooth.c:151  sco_sock_alloc net/bluetooth/sco.c:562 [inline]  sco_sock_create+0xc0/0x350 net/bluetooth/sco.c:593  bt_sock_create+0x161/0x3b0 net/bluetooth/af_bluetooth.c:135  __sock_create+0x3ad/0x780 net/socket.c:1589  sock_create net/socket.c:1647 [inline]  __sys_socket_create net/socket.c:1684 [inline]  __sys_socket+0xd5/0x330 net/socket.c:1731  __do_sys_socket net/socket.c:1745 [inline]  __se_sys_socket net/socket.c:1743 [inline]  __x64_sys_socket+0x7a/0x90 net/socket.c:1743  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xc7/0x240 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 31374:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x30/0x70 mm/kasan/common.c:68  kasan_save_free_info+0x40/0x50 mm/kasan/generic.c:576  poison_slab_object mm/kasan/common.c:243 [inline]  __kasan_slab_free+0x3d/0x50 mm/kasan/common.c:275  kasan_slab_free include/linux/kasan.h:233 [inline]  slab_free_hook mm/slub.c:2428 [inline]  slab_free mm/slub.c:4701 [inline]  kfree+0x199/0x3b0 mm/slub.c:4900  sk_prot_free net/core/sock.c:2278 [inline]  __sk_destruct+0x4aa/0x630 net/core/sock.c:2373  sco_sock_release+0x2ad/0x300 net/bluetooth/sco.c:1333  __sock_release net/socket.c:649 [inline]  sock_close+0xb8/0x230 net/socket.c:1439  __fput+0x3d1/0x9e0 fs/file_table.c:468  task_work_run+0x206/0x2a0 kernel/task_work.c:227  get_signal+0x1201/0x1410 kernel/signal.c:2807  arch_do_signal_or_restart+0x34/0x740 arch/x86/kernel/signal.c:337  exit_to_user_mode_loop+0x68/0xc0 kernel/entry/common.c:40  exit_to_user_mode_prepare include/linux/irq-entry-common.h:225 [inline]  s ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40361",
                        "url": "https://ubuntu.com/security/CVE-2025-40361",
                        "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68185",
                        "url": "https://ubuntu.com/security/CVE-2025-68185",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfs4_setup_readdir(): insufficient locking for ->d_parent->d_inode dereferencing  Theoretically it's an oopsable race, but I don't believe one can manage to hit it on real hardware; might become doable on a KVM, but it still won't be easy to attack.  Anyway, it's easy to deal with - since xdr_encode_hyper() is just a call of put_unaligned_be64(), we can put that under ->d_lock and be done with that.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68176",
                        "url": "https://ubuntu.com/security/CVE-2025-68176",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  PCI: cadence: Check for the existence of cdns_pcie::ops before using it  cdns_pcie::ops might not be populated by all the Cadence glue drivers. This is going to be true for the upcoming Sophgo platform which doesn't set the ops.  Hence, add a check to prevent NULL pointer dereference.  [mani: reworded subject and description]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68168",
                        "url": "https://ubuntu.com/security/CVE-2025-68168",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jfs: fix uninitialized waitqueue in transaction manager  The transaction manager initialization in txInit() was not properly initializing TxBlock[0].waitor waitqueue, causing a crash when txEnd(0) is called on read-only filesystems.  When a filesystem is mounted read-only, txBegin() returns tid=0 to indicate no transaction. However, txEnd(0) still gets called and tries to access TxBlock[0].waitor via tid_to_tblock(0), but this waitqueue was never initialized because the initialization loop started at index 1 instead of 0.  This causes a 'non-static key' lockdep warning and system crash:   INFO: trying to register non-static key in txEnd  Fix by ensuring all transaction blocks including TxBlock[0] have their waitqueues properly initialized during txInit().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40312",
                        "url": "https://ubuntu.com/security/CVE-2025-40312",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jfs: Verify inode mode when loading from disk  The inode mode loaded from corrupted disk can be invalid. Do like what commit 0a9e74051313 (\"isofs: Verify inode mode when loading from disk\") does.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68321",
                        "url": "https://ubuntu.com/security/CVE-2025-68321",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  page_pool: always add GFP_NOWARN for ATOMIC allocations  Driver authors often forget to add GFP_NOWARN for page allocation from the datapath. This is annoying to users as OOMs are a fact of life, and we pretty much expect network Rx to hit page allocation failures during OOM. Make page pool add GFP_NOWARN for ATOMIC allocations by default.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68191",
                        "url": "https://ubuntu.com/security/CVE-2025-68191",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  udp_tunnel: use netdev_warn() instead of netdev_WARN()  netdev_WARN() uses WARN/WARN_ON to print a backtrace along with file and line information. In this case, udp_tunnel_nic_register() returning an error is just a failed operation, not a kernel bug.  udp_tunnel_nic_register() can fail due to a memory allocation failure (kzalloc() or udp_tunnel_nic_alloc()). This is a normal runtime error and not a kernel bug.  Replace netdev_WARN() with netdev_warn() accordingly.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40313",
                        "url": "https://ubuntu.com/security/CVE-2025-40313",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: pretend $Extend records as regular files  Since commit af153bb63a33 (\"vfs: catch invalid modes in may_open()\") requires any inode be one of S_IFDIR/S_IFLNK/S_IFREG/S_IFCHR/S_IFBLK/ S_IFIFO/S_IFSOCK type, use S_IFREG for $Extend records.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40314",
                        "url": "https://ubuntu.com/security/CVE-2025-40314",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: cdns3: gadget: Use-after-free during failed initialization and exit of cdnsp gadget  In the __cdnsp_gadget_init() and cdnsp_gadget_exit() functions, the gadget structure (pdev->gadget) was freed before its endpoints. The endpoints are linked via the ep_list in the gadget structure. Freeing the gadget first leaves dangling pointers in the endpoint list. When the endpoints are subsequently freed, this results in a use-after-free.  Fix: By separating the usb_del_gadget_udc() operation into distinct \"del\" and \"put\" steps, cdnsp_gadget_free_endpoints() can be executed prior to the final release of the gadget structure with usb_put_gadget().  A patch similar to bb9c74a5bd14(\"usb: dwc3: gadget: Free gadget structure  only after freeing endpoints\").",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68194",
                        "url": "https://ubuntu.com/security/CVE-2025-68194",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: imon: make send_packet() more robust  syzbot is reporting that imon has three problems which result in hung tasks due to forever holding device lock [1].  First problem is that when usb_rx_callback_intf0() once got -EPROTO error after ictx->dev_present_intf0 became true, usb_rx_callback_intf0() resubmits urb after printk(), and resubmitted urb causes usb_rx_callback_intf0() to again get -EPROTO error. This results in printk() flooding (RCU stalls).  Alan Stern commented [2] that    In theory it's okay to resubmit _if_ the driver has a robust   error-recovery scheme (such as giving up after some fixed limit on the   number of errors or after some fixed time has elapsed, perhaps with a   time delay to prevent a flood of errors).  Most drivers don't bother to   do this; they simply give up right away.  This makes them more   vulnerable to short-term noise interference during USB transfers, but in   reality such interference is quite rare.  There's nothing really wrong   with giving up right away.  but imon has a poor error-recovery scheme which just retries forever; this behavior should be fixed.  Since I'm not sure whether it is safe for imon users to give up upon any error code, this patch takes care of only union of error codes chosen from modules in drivers/media/rc/ directory which handle -EPROTO error (i.e. ir_toy, mceusb and igorplugusb).  Second problem is that when usb_rx_callback_intf0() once got -EPROTO error before ictx->dev_present_intf0 becomes true, usb_rx_callback_intf0() always resubmits urb due to commit 8791d63af0cf (\"[media] imon: don't wedge hardware after early callbacks\"). Move the ictx->dev_present_intf0 test introduced by commit 6f6b90c9231a (\"[media] imon: don't parse scancodes until intf configured\") to immediately before imon_incoming_packet(), or the first problem explained above happens without printk() flooding (i.e. hung task).  Third problem is that when usb_rx_callback_intf0() is not called for some reason (e.g. flaky hardware; the reproducer for this problem sometimes prevents usb_rx_callback_intf0() from being called), wait_for_completion_interruptible() in send_packet() never returns (i.e. hung task). As a workaround for such situation, change send_packet() to wait for completion with timeout of 10 seconds.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40363",
                        "url": "https://ubuntu.com/security/CVE-2025-40363",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: ipv6: fix field-spanning memcpy warning in AH output  Fix field-spanning memcpy warnings in ah6_output() and ah6_output_done() where extension headers are copied to/from IPv6 address fields, triggering fortify-string warnings about writes beyond the 16-byte address fields.    memcpy: detected field-spanning write (size 40) of single field \"&top_iph->saddr\" at net/ipv6/ah6.c:439 (size 16)   WARNING: CPU: 0 PID: 8838 at net/ipv6/ah6.c:439 ah6_output+0xe7e/0x14e0 net/ipv6/ah6.c:439  The warnings are false positives as the extension headers are intentionally placed after the IPv6 header in memory. Fix by properly copying addresses and extension headers separately, and introduce helper functions to avoid code duplication.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40342",
                        "url": "https://ubuntu.com/security/CVE-2025-40342",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-fc: use lock accessing port_state and rport state  nvme_fc_unregister_remote removes the remote port on a lport object at any point in time when there is no active association. This races with with the reconnect logic, because nvme_fc_create_association is not taking a lock to check the port_state and atomically increase the active count on the rport.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-09 16:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40343",
                        "url": "https://ubuntu.com/security/CVE-2025-40343",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-fc: avoid scheduling association deletion twice  When forcefully shutting down a port via the configfs interface, nvmet_port_subsys_drop_link() first calls nvmet_port_del_ctrls() and then nvmet_disable_port(). Both functions will eventually schedule all remaining associations for deletion.  The current implementation checks whether an association is about to be removed, but only after the work item has already been scheduled. As a result, it is possible for the first scheduled work item to free all resources, and then for the same work item to be scheduled again for deletion.  Because the association list is an RCU list, it is not possible to take a lock and remove the list entry directly, so it cannot be looked up again. Instead, a flag (terminating) must be used to determine whether the association is already in the process of being deleted.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-09 16:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68177",
                        "url": "https://ubuntu.com/security/CVE-2025-68177",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  cpufreq/longhaul: handle NULL policy in longhaul_exit  longhaul_exit() was calling cpufreq_cpu_get(0) without checking for a NULL policy pointer. On some systems, this could lead to a NULL dereference and a kernel warning or panic.  This patch adds a check using unlikely() and returns early if the policy is NULL.  Bugzilla: #219962",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40360",
                        "url": "https://ubuntu.com/security/CVE-2025-40360",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/sysfb: Do not dereference NULL pointer in plane reset  The plane state in __drm_gem_reset_shadow_plane() can be NULL. Do not deref that pointer, but forward NULL to the other plane-reset helpers. Clears plane->state to NULL.  v2: - fix typo in commit description (Javier)",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40315",
                        "url": "https://ubuntu.com/security/CVE-2025-40315",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: f_fs: Fix epfile null pointer access after ep enable.  A race condition occurs when ffs_func_eps_enable() runs concurrently with ffs_data_reset(). The ffs_data_clear() called in ffs_data_reset() sets ffs->epfiles to NULL before resetting ffs->eps_count to 0, leading to a NULL pointer dereference when accessing epfile->ep in ffs_func_eps_enable() after successful usb_ep_enable().  The ffs->epfiles pointer is set to NULL in both ffs_data_clear() and ffs_data_close() functions, and its modification is protected by the spinlock ffs->eps_lock. And the whole ffs_func_eps_enable() function is also protected by ffs->eps_lock.  Thus, add NULL pointer handling for ffs->epfiles in the ffs_func_eps_enable() function to fix issues",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40317",
                        "url": "https://ubuntu.com/security/CVE-2025-40317",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: slimbus: fix bus_context pointer in regmap init calls  Commit 4e65bda8273c (\"ASoC: wcd934x: fix error handling in wcd934x_codec_parse_data()\") revealed the problem in the slimbus regmap. That commit breaks audio playback, for instance, on sdm845 Thundercomm Dragonboard 845c board:   Unable to handle kernel paging request at virtual address ffff8000847cbad4  ...  CPU: 5 UID: 0 PID: 776 Comm: aplay Not tainted 6.18.0-rc1-00028-g7ea30958b305 #11 PREEMPT  Hardware name: Thundercomm Dragonboard 845c (DT)  ...  Call trace:   slim_xfer_msg+0x24/0x1ac [slimbus] (P)   slim_read+0x48/0x74 [slimbus]   regmap_slimbus_read+0x18/0x24 [regmap_slimbus]   _regmap_raw_read+0xe8/0x174   _regmap_bus_read+0x44/0x80   _regmap_read+0x60/0xd8   _regmap_update_bits+0xf4/0x140   _regmap_select_page+0xa8/0x124   _regmap_raw_write_impl+0x3b8/0x65c   _regmap_bus_raw_write+0x60/0x80   _regmap_write+0x58/0xc0   regmap_write+0x4c/0x80   wcd934x_hw_params+0x494/0x8b8 [snd_soc_wcd934x]   snd_soc_dai_hw_params+0x3c/0x7c [snd_soc_core]   __soc_pcm_hw_params+0x22c/0x634 [snd_soc_core]   dpcm_be_dai_hw_params+0x1d4/0x38c [snd_soc_core]   dpcm_fe_dai_hw_params+0x9c/0x17c [snd_soc_core]   snd_pcm_hw_params+0x124/0x464 [snd_pcm]   snd_pcm_common_ioctl+0x110c/0x1820 [snd_pcm]   snd_pcm_ioctl+0x34/0x4c [snd_pcm]   __arm64_sys_ioctl+0xac/0x104   invoke_syscall+0x48/0x104   el0_svc_common.constprop.0+0x40/0xe0   do_el0_svc+0x1c/0x28   el0_svc+0x34/0xec   el0t_64_sync_handler+0xa0/0xf0   el0t_64_sync+0x198/0x19c  The __devm_regmap_init_slimbus() started to be used instead of __regmap_init_slimbus() after the commit mentioned above and turns out the incorrect bus_context pointer (3rd argument) was used in __devm_regmap_init_slimbus(). It should be just \"slimbus\" (which is equal to &slimbus->dev). Correct it. The wcd934x codec seems to be the only or the first user of devm_regmap_init_slimbus() but we should fix it till the point where __devm_regmap_init_slimbus() was introduced therefore two \"Fixes\" tags.  While at this, also correct the same argument in __regmap_init_slimbus().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68312",
                        "url": "https://ubuntu.com/security/CVE-2025-68312",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usbnet: Prevents free active kevent  The root cause of this issue are: 1. When probing the usbnet device, executing usbnet_link_change(dev, 0, 0); put the kevent work in global workqueue. However, the kevent has not yet been scheduled when the usbnet device is unregistered. Therefore, executing free_netdev() results in the \"free active object (kevent)\" error reported here.  2. Another factor is that when calling usbnet_disconnect()->unregister_netdev(), if the usbnet device is up, ndo_stop() is executed to cancel the kevent. However, because the device is not up, ndo_stop() is not executed.  The solution to this problem is to cancel the kevent before executing free_netdev().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40319",
                        "url": "https://ubuntu.com/security/CVE-2025-40319",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Sync pending IRQ work before freeing ring buffer  Fix a race where irq_work can be queued in bpf_ringbuf_commit() but the ring buffer is freed before the work executes. In the syzbot reproducer, a BPF program attached to sched_switch triggers bpf_ringbuf_commit(), queuing an irq_work. If the ring buffer is freed before this work executes, the irq_work thread may accesses freed memory. Calling `irq_work_sync(&rb->work)` ensures that all pending irq_work complete before freeing the buffer.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40321",
                        "url": "https://ubuntu.com/security/CVE-2025-40321",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: brcmfmac: fix crash while sending Action Frames in standalone AP Mode  Currently, whenever there is a need to transmit an Action frame, the brcmfmac driver always uses the P2P vif to send the \"actframe\" IOVAR to firmware. The P2P interfaces were available when wpa_supplicant is managing the wlan interface.  However, the P2P interfaces are not created/initialized when only hostapd is managing the wlan interface. And if hostapd receives an ANQP Query REQ Action frame even from an un-associated STA, the brcmfmac driver tries to use an uninitialized P2P vif pointer for sending the IOVAR to firmware. This NULL pointer dereferencing triggers a driver crash.   [ 1417.074538] Unable to handle kernel NULL pointer dereference at virtual  address 0000000000000000  [...]  [ 1417.075188] Hardware name: Raspberry Pi 4 Model B Rev 1.5 (DT)  [...]  [ 1417.075653] Call trace:  [ 1417.075662]  brcmf_p2p_send_action_frame+0x23c/0xc58 [brcmfmac]  [ 1417.075738]  brcmf_cfg80211_mgmt_tx+0x304/0x5c0 [brcmfmac]  [ 1417.075810]  cfg80211_mlme_mgmt_tx+0x1b0/0x428 [cfg80211]  [ 1417.076067]  nl80211_tx_mgmt+0x238/0x388 [cfg80211]  [ 1417.076281]  genl_family_rcv_msg_doit+0xe0/0x158  [ 1417.076302]  genl_rcv_msg+0x220/0x2a0  [ 1417.076317]  netlink_rcv_skb+0x68/0x140  [ 1417.076330]  genl_rcv+0x40/0x60  [ 1417.076343]  netlink_unicast+0x330/0x3b8  [ 1417.076357]  netlink_sendmsg+0x19c/0x3f8  [ 1417.076370]  __sock_sendmsg+0x64/0xc0  [ 1417.076391]  ____sys_sendmsg+0x268/0x2a0  [ 1417.076408]  ___sys_sendmsg+0xb8/0x118  [ 1417.076427]  __sys_sendmsg+0x90/0xf8  [ 1417.076445]  __arm64_sys_sendmsg+0x2c/0x40  [ 1417.076465]  invoke_syscall+0x50/0x120  [ 1417.076486]  el0_svc_common.constprop.0+0x48/0xf0  [ 1417.076506]  do_el0_svc+0x24/0x38  [ 1417.076525]  el0_svc+0x30/0x100  [ 1417.076548]  el0t_64_sync_handler+0x100/0x130  [ 1417.076569]  el0t_64_sync+0x190/0x198  [ 1417.076589] Code: f9401e80 aa1603e2 f9403be1 5280e483 (f9400000)  Fix this, by always using the vif corresponding to the wdev on which the Action frame Transmission request was initiated by the userspace. This way, even if P2P vif is not available, the IOVAR is sent to firmware on AP vif and the ANQP Query RESP Action frame is transmitted without crashing the driver.  Move init_completion() for \"send_af_done\" from brcmf_p2p_create_p2pdev() to brcmf_p2p_attach(). Because the former function would not get executed when only hostapd is managing wlan interface, and it is not safe to do reinit_completion() later in brcmf_p2p_tx_action_frame(), without any prior init_completion().  And in the brcmf_p2p_tx_action_frame() function, the condition check for P2P Presence response frame is not needed, since the wpa_supplicant is properly sending the P2P Presense Response frame on the P2P-GO vif instead of the P2P-Device vif.  [Cc stable]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40322",
                        "url": "https://ubuntu.com/security/CVE-2025-40322",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fbdev: bitblit: bound-check glyph index in bit_putcs*  bit_putcs_aligned()/unaligned() derived the glyph pointer from the character value masked by 0xff/0x1ff, which may exceed the actual font's glyph count and read past the end of the built-in font array. Clamp the index to the actual glyph count before computing the address.  This fixes a global out-of-bounds read reported by syzbot.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40211",
                        "url": "https://ubuntu.com/security/CVE-2025-40211",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ACPI: video: Fix use-after-free in acpi_video_switch_brightness()  The switch_brightness_work delayed work accesses device->brightness and device->backlight, freed by acpi_video_dev_unregister_backlight() during device removal.  If the work executes after acpi_video_bus_unregister_backlight() frees these resources, it causes a use-after-free when acpi_video_switch_brightness() dereferences device->brightness or device->backlight.  Fix this by calling cancel_delayed_work_sync() for each device's switch_brightness_work in acpi_video_bus_remove_notify_handler() after removing the notify handler that queues the work. This ensures the work completes before the memory is freed.  [ rjw: Changelog edit ]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-21 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40324",
                        "url": "https://ubuntu.com/security/CVE-2025-40324",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: Fix crash in nfsd4_read_release()  When tracing is enabled, the trace_nfsd_read_done trace point crashes during the pynfs read.testNoFh test.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40083",
                        "url": "https://ubuntu.com/security/CVE-2025-40083",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: Fix null-deref in agg_dequeue  To prevent a potential crash in agg_dequeue (net/sched/sch_qfq.c) when cl->qdisc->ops->peek(cl->qdisc) returns NULL, we check the return value before using it, similar to the existing approach in sch_hfsc.c.  To avoid code duplication, the following changes are made:  1. Changed qdisc_warn_nonwc(include/net/pkt_sched.h) into a static inline function.  2. Moved qdisc_peek_len from net/sched/sch_hfsc.c to include/net/pkt_sched.h so that sch_qfq can reuse it.  3. Applied qdisc_peek_len in agg_dequeue to avoid crashing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-29 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-41014",
                        "url": "https://ubuntu.com/security/CVE-2024-41014",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  xfs: add bounds checking to xlog_recover_process_data  There is a lack of verification of the space occupied by fixed members of xlog_op_header in the xlog_recover_process_data.  We can create a crafted image to trigger an out of bounds read by following these steps:     1) Mount an image of xfs, and do some file operations to leave records     2) Before umounting, copy the image for subsequent steps to simulate        abnormal exit. Because umount will ensure that tail_blk and        head_blk are the same, which will result in the inability to enter        xlog_recover_process_data     3) Write a tool to parse and modify the copied image in step 2     4) Make the end of the xlog_op_header entries only 1 byte away from        xlog_rec_header->h_size     5) xlog_rec_header->h_num_logops++     6) Modify xlog_rec_header->h_crc  Fix: Add a check to make sure there is sufficient space to access fixed members of xlog_op_header.",
                        "cve_priority": "low",
                        "cve_public_date": "2024-07-29 07:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2022-49267",
                        "url": "https://ubuntu.com/security/CVE-2022-49267",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mmc: core: use sysfs_emit() instead of sprintf()  sprintf() (still used in the MMC core for the sysfs output) is vulnerable to the buffer overflow.  Use the new-fangled sysfs_emit() instead.  Found by Linux Verification Center (linuxtesting.org) with the SVACE static analysis tool.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-26 07:01:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-21780",
                        "url": "https://ubuntu.com/security/CVE-2025-21780",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdgpu: avoid buffer overflow attach in smu_sys_set_pp_table()  It malicious user provides a small pptable through sysfs and then a bigger pptable, it may cause buffer overflow attack in function smu_sys_set_pp_table().",
                        "cve_priority": "high",
                        "cve_public_date": "2025-02-27 03:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2141059,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Miscellaneous upstream changes",
                            "    - apparmor: validate DFA start states are in bounds in unpack_pdb",
                            "    - apparmor: fix memory leak in verify_header",
                            "    - apparmor: replace recursive profile removal with iterative approach",
                            "    - apparmor: fix: limit the number of levels of policy namespaces",
                            "    - apparmor: fix side-effect bug in match_char() macro usage",
                            "    - apparmor: fix missing bounds check on DEFAULT table in verify_dfa()",
                            "    - apparmor: Fix double free of ns_name in aa_replace_profiles()",
                            "    - apparmor: fix unprivileged local user can do privileged policy",
                            "      management",
                            "    - apparmor: fix differential encoding verification",
                            "    - apparmor: fix race on rawdata dereference",
                            "    - apparmor: fix race between freeing data and fs accessing it",
                            ""
                        ],
                        "package": "linux",
                        "version": "5.15.0-173.183",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Mehmet Basaran <mehmet.basaran@canonical.com>",
                        "date": "Fri, 06 Mar 2026 16:14:08 +0300"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-71182",
                                "url": "https://ubuntu.com/security/CVE-2025-71182",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: j1939: make j1939_session_activate() fail if device is no longer registered  syzbot is still reporting    unregister_netdevice: waiting for vcan0 to become free. Usage count = 2  even after commit 93a27b5891b8 (\"can: j1939: add missing calls in NETDEV_UNREGISTER notification handler\") was added. A debug printk() patch found that j1939_session_activate() can succeed even after j1939_cancel_active_session() from j1939_netdev_notify(NETDEV_UNREGISTER) has completed.  Since j1939_cancel_active_session() is processed with the session list lock held, checking ndev->reg_state in j1939_session_activate() with the session list lock held can reliably close the race window.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2022-49465",
                                "url": "https://ubuntu.com/security/CVE-2022-49465",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  blk-throttle: Set BIO_THROTTLED when bio has been throttled  1.In current process, all bio will set the BIO_THROTTLED flag after __blk_throtl_bio().  2.If bio needs to be throttled, it will start the timer and stop submit bio directly. Bio will submit in blk_throtl_dispatch_work_fn() when the timer expires.But in the current process, if bio is throttled. The BIO_THROTTLED will be set to bio after timer start. If the bio has been completed, it may cause use-after-free blow.  BUG: KASAN: use-after-free in blk_throtl_bio+0x12f0/0x2c70 Read of size 2 at addr ffff88801b8902d4 by task fio/26380   dump_stack+0x9b/0xce  print_address_description.constprop.6+0x3e/0x60  kasan_report.cold.9+0x22/0x3a  blk_throtl_bio+0x12f0/0x2c70  submit_bio_checks+0x701/0x1550  submit_bio_noacct+0x83/0xc80  submit_bio+0xa7/0x330  mpage_readahead+0x380/0x500  read_pages+0x1c1/0xbf0  page_cache_ra_unbounded+0x471/0x6f0  do_page_cache_ra+0xda/0x110  ondemand_readahead+0x442/0xae0  page_cache_async_ra+0x210/0x300  generic_file_buffered_read+0x4d9/0x2130  generic_file_read_iter+0x315/0x490  blkdev_read_iter+0x113/0x1b0  aio_read+0x2ad/0x450  io_submit_one+0xc8e/0x1d60  __se_sys_io_submit+0x125/0x350  do_syscall_64+0x2d/0x40  entry_SYSCALL_64_after_hwframe+0x44/0xa9  Allocated by task 26380:  kasan_save_stack+0x19/0x40  __kasan_kmalloc.constprop.2+0xc1/0xd0  kmem_cache_alloc+0x146/0x440  mempool_alloc+0x125/0x2f0  bio_alloc_bioset+0x353/0x590  mpage_alloc+0x3b/0x240  do_mpage_readpage+0xddf/0x1ef0  mpage_readahead+0x264/0x500  read_pages+0x1c1/0xbf0  page_cache_ra_unbounded+0x471/0x6f0  do_page_cache_ra+0xda/0x110  ondemand_readahead+0x442/0xae0  page_cache_async_ra+0x210/0x300  generic_file_buffered_read+0x4d9/0x2130  generic_file_read_iter+0x315/0x490  blkdev_read_iter+0x113/0x1b0  aio_read+0x2ad/0x450  io_submit_one+0xc8e/0x1d60  __se_sys_io_submit+0x125/0x350  do_syscall_64+0x2d/0x40  entry_SYSCALL_64_after_hwframe+0x44/0xa9  Freed by task 0:  kasan_save_stack+0x19/0x40  kasan_set_track+0x1c/0x30  kasan_set_free_info+0x1b/0x30  __kasan_slab_free+0x111/0x160  kmem_cache_free+0x94/0x460  mempool_free+0xd6/0x320  bio_free+0xe0/0x130  bio_put+0xab/0xe0  bio_endio+0x3a6/0x5d0  blk_update_request+0x590/0x1370  scsi_end_request+0x7d/0x400  scsi_io_completion+0x1aa/0xe50  scsi_softirq_done+0x11b/0x240  blk_mq_complete_request+0xd4/0x120  scsi_mq_done+0xf0/0x200  virtscsi_vq_done+0xbc/0x150  vring_interrupt+0x179/0x390  __handle_irq_event_percpu+0xf7/0x490  handle_irq_event_percpu+0x7b/0x160  handle_irq_event+0xcc/0x170  handle_edge_irq+0x215/0xb20  common_interrupt+0x60/0x120  asm_common_interrupt+0x1e/0x40  Fix this by move BIO_THROTTLED set into the queue_lock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-26 07:01:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71180",
                                "url": "https://ubuntu.com/security/CVE-2025-71180",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  counter: interrupt-cnt: Drop IRQF_NO_THREAD flag  An IRQ handler can either be IRQF_NO_THREAD or acquire spinlock_t, as CONFIG_PROVE_RAW_LOCK_NESTING warns: ============================= [ BUG: Invalid wait context ] 6.18.0-rc1+git... #1 ----------------------------- some-user-space-process/1251 is trying to lock: (&counter->events_list_lock){....}-{3:3}, at: counter_push_event [counter] other info that might help us debug this: context-{2:2} no locks held by some-user-space-process/.... stack backtrace: CPU: 0 UID: 0 PID: 1251 Comm: some-user-space-process 6.18.0-rc1+git... #1 PREEMPT Call trace:  show_stack (C)  dump_stack_lvl  dump_stack  __lock_acquire  lock_acquire  _raw_spin_lock_irqsave  counter_push_event [counter]  interrupt_cnt_isr [interrupt_cnt]  __handle_irq_event_percpu  handle_irq_event  handle_simple_irq  handle_irq_desc  generic_handle_domain_irq  gpio_irq_handler  handle_irq_desc  generic_handle_domain_irq  gic_handle_irq  call_on_irq_stack  do_interrupt_handler  el0_interrupt  __el0_irq_handler_common  el0t_64_irq_handler  el0t_64_irq  ... and Sebastian correctly points out. Remove IRQF_NO_THREAD as an alternative to switching to raw_spinlock_t, because the latter would limit all potential nested locks to raw_spinlock_t only.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22980",
                                "url": "https://ubuntu.com/security/CVE-2026-22980",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfsd: provide locking for v4_end_grace  Writing to v4_end_grace can race with server shutdown and result in memory being accessed after it was freed - reclaim_str_hashtbl in particularly.  We cannot hold nfsd_mutex across the nfsd4_end_grace() call as that is held while client_tracking_op->init() is called and that can wait for an upcall to nfsdcltrack which can write to v4_end_grace, resulting in a deadlock.  nfsd4_end_grace() is also called by the landromat work queue and this doesn't require locking as server shutdown will stop the work and wait for it before freeing anything that nfsd4_end_grace() might access.  However, we must be sure that writing to v4_end_grace doesn't restart the work item after shutdown has already waited for it.  For this we add a new flag protected with nn->client_lock.  It is set only while it is safe to make client tracking calls, and v4_end_grace only schedules work while the flag is set with the spinlock held.  So this patch adds a nfsd_net field \"client_tracking_active\" which is set as described.  Another field \"grace_end_forced\", is set when v4_end_grace is written.  After this is set, and providing client_tracking_active is set, the laundromat is scheduled. This \"grace_end_forced\" field bypasses other checks for whether the grace period has finished.  This resolves a race which can result in use-after-free.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23021",
                                "url": "https://ubuntu.com/security/CVE-2026-23021",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: pegasus: fix memory leak in update_eth_regs_async()  When asynchronously writing to the device registers and if usb_submit_urb() fail, the code fail to release allocated to this point resources.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22976",
                                "url": "https://ubuntu.com/security/CVE-2026-22976",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate in qfq_reset  `qfq_class->leaf_qdisc->q.qlen > 0` does not imply that the class itself is active.  Two qfq_class objects may point to the same leaf_qdisc. This happens when:  1. one QFQ qdisc is attached to the dev as the root qdisc, and  2. another QFQ qdisc is temporarily referenced (e.g., via qdisc_get() / qdisc_put()) and is pending to be destroyed, as in function tc_new_tfilter.  When packets are enqueued through the root QFQ qdisc, the shared leaf_qdisc->q.qlen increases. At the same time, the second QFQ qdisc triggers qdisc_put and qdisc_destroy: the qdisc enters qfq_reset() with its own q->q.qlen == 0, but its class's leaf qdisc->q.qlen > 0. Therefore, the qfq_reset would wrongly deactivate an inactive aggregate and trigger a null-deref in qfq_deactivate_agg:  [    0.903172] BUG: kernel NULL pointer dereference, address: 0000000000000000 [    0.903571] #PF: supervisor write access in kernel mode [    0.903860] #PF: error_code(0x0002) - not-present page [    0.904177] PGD 10299b067 P4D 10299b067 PUD 10299c067 PMD 0 [    0.904502] Oops: Oops: 0002 [#1] SMP NOPTI [    0.904737] CPU: 0 UID: 0 PID: 135 Comm: exploit Not tainted 6.19.0-rc3+ #2 NONE [    0.905157] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014 [    0.905754] RIP: 0010:qfq_deactivate_agg (include/linux/list.h:992 (discriminator 2) include/linux/list.h:1006 (discriminator 2) net/sched/sch_qfq.c:1367 (discriminator 2) net/sched/sch_qfq.c:1393 (discriminator 2)) [    0.906046] Code: 0f 84 4d 01 00 00 48 89 70 18 8b 4b 10 48 c7 c2 ff ff ff ff 48 8b 78 08 48 d3 e2 48 21 f2 48 2b 13 48 8b 30 48 d3 ea 8b 4b 18 0  Code starting with the faulting instruction ===========================================    0:\t0f 84 4d 01 00 00    \tje     0x153    6:\t48 89 70 18          \tmov    %rsi,0x18(%rax)    a:\t8b 4b 10             \tmov    0x10(%rbx),%ecx    d:\t48 c7 c2 ff ff ff ff \tmov    $0xffffffffffffffff,%rdx   14:\t48 8b 78 08          \tmov    0x8(%rax),%rdi   18:\t48 d3 e2             \tshl    %cl,%rdx   1b:\t48 21 f2             \tand    %rsi,%rdx   1e:\t48 2b 13             \tsub    (%rbx),%rdx   21:\t48 8b 30             \tmov    (%rax),%rsi   24:\t48 d3 ea             \tshr    %cl,%rdx   27:\t8b 4b 18             \tmov    0x18(%rbx),%ecx \t... [    0.907095] RSP: 0018:ffffc900004a39a0 EFLAGS: 00010246 [    0.907368] RAX: ffff8881043a0880 RBX: ffff888102953340 RCX: 0000000000000000 [    0.907723] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 [    0.908100] RBP: ffff888102952180 R08: 0000000000000000 R09: 0000000000000000 [    0.908451] R10: ffff8881043a0000 R11: 0000000000000000 R12: ffff888102952000 [    0.908804] R13: ffff888102952180 R14: ffff8881043a0ad8 R15: ffff8881043a0880 [    0.909179] FS:  000000002a1a0380(0000) GS:ffff888196d8d000(0000) knlGS:0000000000000000 [    0.909572] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [    0.909857] CR2: 0000000000000000 CR3: 0000000102993002 CR4: 0000000000772ef0 [    0.910247] PKRU: 55555554 [    0.910391] Call Trace: [    0.910527]  <TASK> [    0.910638]  qfq_reset_qdisc (net/sched/sch_qfq.c:357 net/sched/sch_qfq.c:1485) [    0.910826]  qdisc_reset (include/linux/skbuff.h:2195 include/linux/skbuff.h:2501 include/linux/skbuff.h:3424 include/linux/skbuff.h:3430 net/sched/sch_generic.c:1036) [    0.911040]  __qdisc_destroy (net/sched/sch_generic.c:1076) [    0.911236]  tc_new_tfilter (net/sched/cls_api.c:2447) [    0.911447]  rtnetlink_rcv_msg (net/core/rtnetlink.c:6958) [    0.911663]  ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6861) [    0.911894]  netlink_rcv_skb (net/netlink/af_netlink.c:2550) [    0.912100]  netlink_unicast (net/netlink/af_netlink.c:1319 net/netlink/af_netlink.c:1344) [    0.912296]  ? __alloc_skb (net/core/skbuff.c:706) [    0.912484]  netlink_sendmsg (net/netlink/af ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-21 07:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22977",
                                "url": "https://ubuntu.com/security/CVE-2026-22977",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sock: fix hardened usercopy panic in sock_recv_errqueue  skbuff_fclone_cache was created without defining a usercopy region, [1] unlike skbuff_head_cache which properly whitelists the cb[] field. [2] This causes a usercopy BUG() when CONFIG_HARDENED_USERCOPY is enabled and the kernel attempts to copy sk_buff.cb data to userspace via sock_recv_errqueue() -> put_cmsg().  The crash occurs when: 1. TCP allocates an skb using alloc_skb_fclone()    (from skbuff_fclone_cache) [1] 2. The skb is cloned via skb_clone() using the pre-allocated fclone [3] 3. The cloned skb is queued to sk_error_queue for timestamp reporting 4. Userspace reads the error queue via recvmsg(MSG_ERRQUEUE) 5. sock_recv_errqueue() calls put_cmsg() to copy serr->ee from skb->cb [4] 6. __check_heap_object() fails because skbuff_fclone_cache has no    usercopy whitelist [5]  When cloned skbs allocated from skbuff_fclone_cache are used in the socket error queue, accessing the sock_exterr_skb structure in skb->cb via put_cmsg() triggers a usercopy hardening violation:  [    5.379589] usercopy: Kernel memory exposure attempt detected from SLUB object 'skbuff_fclone_cache' (offset 296, size 16)! [    5.382796] kernel BUG at mm/usercopy.c:102! [    5.383923] Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI [    5.384903] CPU: 1 UID: 0 PID: 138 Comm: poc_put_cmsg Not tainted 6.12.57 #7 [    5.384903] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [    5.384903] RIP: 0010:usercopy_abort+0x6c/0x80 [    5.384903] Code: 1a 86 51 48 c7 c2 40 15 1a 86 41 52 48 c7 c7 c0 15 1a 86 48 0f 45 d6 48 c7 c6 80 15 1a 86 48 89 c1 49 0f 45 f3 e8 84 27 88 ff <0f> 0b 490 [    5.384903] RSP: 0018:ffffc900006f77a8 EFLAGS: 00010246 [    5.384903] RAX: 000000000000006f RBX: ffff88800f0ad2a8 RCX: 1ffffffff0f72e74 [    5.384903] RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffffffff87b973a0 [    5.384903] RBP: 0000000000000010 R08: 0000000000000000 R09: fffffbfff0f72e74 [    5.384903] R10: 0000000000000003 R11: 79706f6372657375 R12: 0000000000000001 [    5.384903] R13: ffff88800f0ad2b8 R14: ffffea00003c2b40 R15: ffffea00003c2b00 [    5.384903] FS:  0000000011bc4380(0000) GS:ffff8880bf100000(0000) knlGS:0000000000000000 [    5.384903] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [    5.384903] CR2: 000056aa3b8e5fe4 CR3: 000000000ea26004 CR4: 0000000000770ef0 [    5.384903] PKRU: 55555554 [    5.384903] Call Trace: [    5.384903]  <TASK> [    5.384903]  __check_heap_object+0x9a/0xd0 [    5.384903]  __check_object_size+0x46c/0x690 [    5.384903]  put_cmsg+0x129/0x5e0 [    5.384903]  sock_recv_errqueue+0x22f/0x380 [    5.384903]  tls_sw_recvmsg+0x7ed/0x1960 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5 [    5.384903]  ? schedule+0x6d/0x270 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5 [    5.384903]  ? mutex_unlock+0x81/0xd0 [    5.384903]  ? __pfx_mutex_unlock+0x10/0x10 [    5.384903]  ? __pfx_tls_sw_recvmsg+0x10/0x10 [    5.384903]  ? _raw_spin_lock_irqsave+0x8f/0xf0 [    5.384903]  ? _raw_read_unlock_irqrestore+0x20/0x40 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5  The crash offset 296 corresponds to skb2->cb within skbuff_fclones:   - sizeof(struct sk_buff) = 232 - offsetof(struct sk_buff, cb) = 40 -   offset of skb2.cb in fclones = 232 + 40 = 272 - crash offset 296 =   272 + 24 (inside sock_exterr_skb.ee)  This patch uses a local stack variable as a bounce buffer to avoid the hardened usercopy check failure.  [1] https://elixir.bootlin.com/linux/v6.12.62/source/net/ipv4/tcp.c#L885 [2] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5104 [3] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5566 [4] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5491 [5] https://elixir.bootlin.com/linux/v6.12.62/source/mm/slub.c#L5719",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-21 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22982",
                                "url": "https://ubuntu.com/security/CVE-2026-22982",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: mscc: ocelot: Fix crash when adding interface under a lag  Commit 15faa1f67ab4 (\"lan966x: Fix crash when adding interface under a lag\") fixed a similar issue in the lan966x driver caused by a NULL pointer dereference. The ocelot_set_aggr_pgids() function in the ocelot driver has similar logic and is susceptible to the same crash.  This issue specifically affects the ocelot_vsc7514.c frontend, which leaves unused ports as NULL pointers. The felix_vsc9959.c frontend is unaffected as it uses the DSA framework which registers all ports.  Fix this by checking if the port pointer is valid before accessing it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23019",
                                "url": "https://ubuntu.com/security/CVE-2026-23019",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: marvell: prestera: fix NULL dereference on devlink_alloc() failure  devlink_alloc() may return NULL on allocation failure, but prestera_devlink_alloc() unconditionally calls devlink_priv() on the returned pointer.  This leads to a NULL pointer dereference if devlink allocation fails. Add a check for a NULL devlink pointer and return NULL early to avoid the crash.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-22121",
                                "url": "https://ubuntu.com/security/CVE-2025-22121",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: fix out-of-bound read in ext4_xattr_inode_dec_ref_all()  There's issue as follows: BUG: KASAN: use-after-free in ext4_xattr_inode_dec_ref_all+0x6ff/0x790 Read of size 4 at addr ffff88807b003000 by task syz-executor.0/15172  CPU: 3 PID: 15172 Comm: syz-executor.0 Call Trace:  __dump_stack lib/dump_stack.c:82 [inline]  dump_stack+0xbe/0xfd lib/dump_stack.c:123  print_address_description.constprop.0+0x1e/0x280 mm/kasan/report.c:400  __kasan_report.cold+0x6c/0x84 mm/kasan/report.c:560  kasan_report+0x3a/0x50 mm/kasan/report.c:585  ext4_xattr_inode_dec_ref_all+0x6ff/0x790 fs/ext4/xattr.c:1137  ext4_xattr_delete_inode+0x4c7/0xda0 fs/ext4/xattr.c:2896  ext4_evict_inode+0xb3b/0x1670 fs/ext4/inode.c:323  evict+0x39f/0x880 fs/inode.c:622  iput_final fs/inode.c:1746 [inline]  iput fs/inode.c:1772 [inline]  iput+0x525/0x6c0 fs/inode.c:1758  ext4_orphan_cleanup fs/ext4/super.c:3298 [inline]  ext4_fill_super+0x8c57/0xba40 fs/ext4/super.c:5300  mount_bdev+0x355/0x410 fs/super.c:1446  legacy_get_tree+0xfe/0x220 fs/fs_context.c:611  vfs_get_tree+0x8d/0x2f0 fs/super.c:1576  do_new_mount fs/namespace.c:2983 [inline]  path_mount+0x119a/0x1ad0 fs/namespace.c:3316  do_mount+0xfc/0x110 fs/namespace.c:3329  __do_sys_mount fs/namespace.c:3540 [inline]  __se_sys_mount+0x219/0x2e0 fs/namespace.c:3514  do_syscall_64+0x33/0x40 arch/x86/entry/common.c:46  entry_SYSCALL_64_after_hwframe+0x67/0xd1  Memory state around the buggy address:  ffff88807b002f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ffff88807b002f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffff88807b003000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff                    ^  ffff88807b003080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ffff88807b003100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  Above issue happens as ext4_xattr_delete_inode() isn't check xattr is valid if xattr is in inode. To solve above issue call xattr_check_inode() check if xattr if valid in inode. In fact, we can directly verify in ext4_iget_extra_inode(), so that there is no divergent verification.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22992",
                                "url": "https://ubuntu.com/security/CVE-2026-22992",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: return the handler error from mon_handle_auth_done()  Currently any error from ceph_auth_handle_reply_done() is propagated via finish_auth() but isn't returned from mon_handle_auth_done().  This results in higher layers learning that (despite the monitor considering us to be successfully authenticated) something went wrong in the authentication phase and reacting accordingly, but msgr2 still trying to proceed with establishing the session in the background.  In the case of secure mode this can trigger a WARN in setup_crypto() and later lead to a NULL pointer dereference inside of prepare_auth_signature().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22991",
                                "url": "https://ubuntu.com/security/CVE-2026-22991",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make free_choose_arg_map() resilient to partial allocation  free_choose_arg_map() may dereference a NULL pointer if its caller fails after a partial allocation.  For example, in decode_choose_args(), if allocation of arg_map->args fails, execution jumps to the fail label and free_choose_arg_map() is called. Since arg_map->size is updated to a non-zero value before memory allocation, free_choose_arg_map() will iterate over arg_map->args and dereference a NULL pointer.  To prevent this potential NULL pointer dereference and make free_choose_arg_map() more resilient, add checks for pointers before iterating.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22990",
                                "url": "https://ubuntu.com/security/CVE-2026-22990",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: replace overzealous BUG_ON in osdmap_apply_incremental()  If the osdmap is (maliciously) corrupted such that the incremental osdmap epoch is different from what is expected, there is no need to BUG.  Instead, just declare the incremental osdmap to be invalid.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22984",
                                "url": "https://ubuntu.com/security/CVE-2026-22984",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: prevent potential out-of-bounds reads in handle_auth_done()  Perform an explicit bounds check on payload_len to avoid a possible out-of-bounds access in the callout.  [ idryomov: changelog ]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22978",
                                "url": "https://ubuntu.com/security/CVE-2026-22978",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: avoid kernel-infoleak from struct iw_point  struct iw_point has a 32bit hole on 64bit arches.  struct iw_point {   void __user   *pointer;       /* Pointer to the data  (in user space) */   __u16         length;         /* number of fields or size in bytes */   __u16         flags;          /* Optional params */ };  Make sure to zero the structure to avoid disclosing 32bits of kernel data to user space.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23020",
                                "url": "https://ubuntu.com/security/CVE-2026-23020",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: 3com: 3c59x: fix possible null dereference in vortex_probe1()  pdev can be null and free_ring: can be called in 1297 with a null pdev.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-49968",
                                "url": "https://ubuntu.com/security/CVE-2024-49968",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: filesystems without casefold feature cannot be mounted with siphash  When mounting the ext4 filesystem, if the default hash version is set to DX_HASH_SIPHASH but the casefold feature is not set, exit the mounting.",
                                "cve_priority": "low",
                                "cve_public_date": "2024-10-21 18:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-36927",
                                "url": "https://ubuntu.com/security/CVE-2024-36927",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: Fix uninit-value access in __ip_make_skb()  KMSAN reported uninit-value access in __ip_make_skb() [1].  __ip_make_skb() tests HDRINCL to know if the skb has icmphdr. However, HDRINCL can cause a race condition. If calling setsockopt(2) with IP_HDRINCL changes HDRINCL while __ip_make_skb() is running, the function will access icmphdr in the skb even if it is not included. This causes the issue reported by KMSAN.  Check FLOWI_FLAG_KNOWN_NH on fl4->flowi4_flags instead of testing HDRINCL on the socket.  Also, fl4->fl4_icmp_type and fl4->fl4_icmp_code are not initialized. These are union in struct flowi4 and are implicitly initialized by flowi4_init_output(), but we should not rely on specific union layout.  Initialize these explicitly in raw_sendmsg().  [1] BUG: KMSAN: uninit-value in __ip_make_skb+0x2b74/0x2d20 net/ipv4/ip_output.c:1481  __ip_make_skb+0x2b74/0x2d20 net/ipv4/ip_output.c:1481  ip_finish_skb include/net/ip.h:243 [inline]  ip_push_pending_frames+0x4c/0x5c0 net/ipv4/ip_output.c:1508  raw_sendmsg+0x2381/0x2690 net/ipv4/raw.c:654  inet_sendmsg+0x27b/0x2a0 net/ipv4/af_inet.c:851  sock_sendmsg_nosec net/socket.c:730 [inline]  __sock_sendmsg+0x274/0x3c0 net/socket.c:745  __sys_sendto+0x62c/0x7b0 net/socket.c:2191  __do_sys_sendto net/socket.c:2203 [inline]  __se_sys_sendto net/socket.c:2199 [inline]  __x64_sys_sendto+0x130/0x200 net/socket.c:2199  do_syscall_64+0xd8/0x1f0 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x6d/0x75  Uninit was created at:  slab_post_alloc_hook mm/slub.c:3804 [inline]  slab_alloc_node mm/slub.c:3845 [inline]  kmem_cache_alloc_node+0x5f6/0xc50 mm/slub.c:3888  kmalloc_reserve+0x13c/0x4a0 net/core/skbuff.c:577  __alloc_skb+0x35a/0x7c0 net/core/skbuff.c:668  alloc_skb include/linux/skbuff.h:1318 [inline]  __ip_append_data+0x49ab/0x68c0 net/ipv4/ip_output.c:1128  ip_append_data+0x1e7/0x260 net/ipv4/ip_output.c:1365  raw_sendmsg+0x22b1/0x2690 net/ipv4/raw.c:648  inet_sendmsg+0x27b/0x2a0 net/ipv4/af_inet.c:851  sock_sendmsg_nosec net/socket.c:730 [inline]  __sock_sendmsg+0x274/0x3c0 net/socket.c:745  __sys_sendto+0x62c/0x7b0 net/socket.c:2191  __do_sys_sendto net/socket.c:2203 [inline]  __se_sys_sendto net/socket.c:2199 [inline]  __x64_sys_sendto+0x130/0x200 net/socket.c:2199  do_syscall_64+0xd8/0x1f0 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x6d/0x75  CPU: 1 PID: 15709 Comm: syz-executor.7 Not tainted 6.8.0-11567-gb3603fcb79b1 #25 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-1.fc39 04/01/2014",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-05-30 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-36903",
                                "url": "https://ubuntu.com/security/CVE-2024-36903",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: Fix potential uninit-value access in __ip6_make_skb()  As it was done in commit fc1092f51567 (\"ipv4: Fix uninit-value access in __ip_make_skb()\") for IPv4, check FLOWI_FLAG_KNOWN_NH on fl6->flowi6_flags instead of testing HDRINCL on the socket to avoid a race condition which causes uninit-value access.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-05-30 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38556",
                                "url": "https://ubuntu.com/security/CVE-2025-38556",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  HID: core: Harden s32ton() against conversion to 0 bits  Testing by the syzbot fuzzer showed that the HID core gets a shift-out-of-bounds exception when it tries to convert a 32-bit quantity to a 0-bit quantity.  Ideally this should never occur, but there are buggy devices and some might have a report field with size set to zero; we shouldn't reject the report or the device just because of that.  Instead, harden the s32ton() routine so that it returns a reasonable result instead of crashing when it is called with the number of bits set to 0 -- the same as what snto32() does.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-08-19 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-46830",
                                "url": "https://ubuntu.com/security/CVE-2024-46830",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: x86: Acquire kvm->srcu when handling KVM_SET_VCPU_EVENTS  Grab kvm->srcu when processing KVM_SET_VCPU_EVENTS, as KVM will forcibly leave nested VMX/SVM if SMM mode is being toggled, and leaving nested VMX reads guest memory.  Note, kvm_vcpu_ioctl_x86_set_vcpu_events() can also be called from KVM_RUN via sync_regs(), which already holds SRCU.  I.e. trying to precisely use kvm_vcpu_srcu_read_lock() around the problematic SMM code would cause problems.  Acquiring SRCU isn't all that expensive, so for simplicity, grab it unconditionally for KVM_SET_VCPU_EVENTS.   =============================  WARNING: suspicious RCU usage  6.10.0-rc7-332d2c1d713e-next-vm #552 Not tainted  -----------------------------  include/linux/kvm_host.h:1027 suspicious rcu_dereference_check() usage!   other info that might help us debug this:   rcu_scheduler_active = 2, debug_locks = 1  1 lock held by repro/1071:   #0: ffff88811e424430 (&vcpu->mutex){+.+.}-{3:3}, at: kvm_vcpu_ioctl+0x7d/0x970 [kvm]   stack backtrace:  CPU: 15 PID: 1071 Comm: repro Not tainted 6.10.0-rc7-332d2c1d713e-next-vm #552  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015  Call Trace:   <TASK>   dump_stack_lvl+0x7f/0x90   lockdep_rcu_suspicious+0x13f/0x1a0   kvm_vcpu_gfn_to_memslot+0x168/0x190 [kvm]   kvm_vcpu_read_guest+0x3e/0x90 [kvm]   nested_vmx_load_msr+0x6b/0x1d0 [kvm_intel]   load_vmcs12_host_state+0x432/0xb40 [kvm_intel]   vmx_leave_nested+0x30/0x40 [kvm_intel]   kvm_vcpu_ioctl_x86_set_vcpu_events+0x15d/0x2b0 [kvm]   kvm_arch_vcpu_ioctl+0x1107/0x1750 [kvm]   ? mark_held_locks+0x49/0x70   ? kvm_vcpu_ioctl+0x7d/0x970 [kvm]   ? kvm_vcpu_ioctl+0x497/0x970 [kvm]   kvm_vcpu_ioctl+0x497/0x970 [kvm]   ? lock_acquire+0xba/0x2d0   ? find_held_lock+0x2b/0x80   ? do_user_addr_fault+0x40c/0x6f0   ? lock_release+0xb7/0x270   __x64_sys_ioctl+0x82/0xb0   do_syscall_64+0x6c/0x170   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7ff11eb1b539   </TASK>",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-09-27 13:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38129",
                                "url": "https://ubuntu.com/security/CVE-2025-38129",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  page_pool: Fix use-after-free in page_pool_recycle_in_ring  syzbot reported a uaf in page_pool_recycle_in_ring:  BUG: KASAN: slab-use-after-free in lock_release+0x151/0xa30 kernel/locking/lockdep.c:5862 Read of size 8 at addr ffff8880286045a0 by task syz.0.284/6943  CPU: 0 UID: 0 PID: 6943 Comm: syz.0.284 Not tainted 6.13.0-rc3-syzkaller-gdfa94ce54f41 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0x169/0x550 mm/kasan/report.c:489  kasan_report+0x143/0x180 mm/kasan/report.c:602  lock_release+0x151/0xa30 kernel/locking/lockdep.c:5862  __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:165 [inline]  _raw_spin_unlock_bh+0x1b/0x40 kernel/locking/spinlock.c:210  spin_unlock_bh include/linux/spinlock.h:396 [inline]  ptr_ring_produce_bh include/linux/ptr_ring.h:164 [inline]  page_pool_recycle_in_ring net/core/page_pool.c:707 [inline]  page_pool_put_unrefed_netmem+0x748/0xb00 net/core/page_pool.c:826  page_pool_put_netmem include/net/page_pool/helpers.h:323 [inline]  page_pool_put_full_netmem include/net/page_pool/helpers.h:353 [inline]  napi_pp_put_page+0x149/0x2b0 net/core/skbuff.c:1036  skb_pp_recycle net/core/skbuff.c:1047 [inline]  skb_free_head net/core/skbuff.c:1094 [inline]  skb_release_data+0x6c4/0x8a0 net/core/skbuff.c:1125  skb_release_all net/core/skbuff.c:1190 [inline]  __kfree_skb net/core/skbuff.c:1204 [inline]  sk_skb_reason_drop+0x1c9/0x380 net/core/skbuff.c:1242  kfree_skb_reason include/linux/skbuff.h:1263 [inline]  __skb_queue_purge_reason include/linux/skbuff.h:3343 [inline]  root cause is:  page_pool_recycle_in_ring   ptr_ring_produce     spin_lock(&r->producer_lock);     WRITE_ONCE(r->queue[r->producer++], ptr)       //recycle last page to pool \t\t\t\tpage_pool_release \t\t\t\t  page_pool_scrub \t\t\t\t    page_pool_empty_ring \t\t\t\t      ptr_ring_consume \t\t\t\t      page_pool_return_page  //release all page \t\t\t\t  __page_pool_destroy \t\t\t\t     free_percpu(pool->recycle_stats); \t\t\t\t     free(pool) //free       spin_unlock(&r->producer_lock); //pool->ring uaf read   recycle_stat_inc(pool, ring);  page_pool can be free while page pool recycle the last page in ring. Add producer-lock barrier to page_pool_release to prevent the page pool from being free before all pages have been recycled.  recycle_stat_inc() is empty when CONFIG_PAGE_POOL_STATS is not enabled, which will trigger Wempty-body build warning. Add definition for pool stat macro to fix warning.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-07-03 09:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2022-49635",
                                "url": "https://ubuntu.com/security/CVE-2022-49635",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915/selftests: fix subtraction overflow bug  On some machines hole_end can be small enough to cause subtraction overflow. On the other side (addr + 2 * min_alignment) can overflow in case of mock tests. This patch should handle both cases.  (cherry picked from commit ab3edc679c552a466e4bf0b11af3666008bd65a2)",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-26 07:01:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-22111",
                                "url": "https://ubuntu.com/security/CVE-2025-22111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: Remove RTNL dance for SIOCBRADDIF and SIOCBRDELIF.  SIOCBRDELIF is passed to dev_ioctl() first and later forwarded to br_ioctl_call(), which causes unnecessary RTNL dance and the splat below [0] under RTNL pressure.  Let's say Thread A is trying to detach a device from a bridge and Thread B is trying to remove the bridge.  In dev_ioctl(), Thread A bumps the bridge device's refcnt by netdev_hold() and releases RTNL because the following br_ioctl_call() also re-acquires RTNL.  In the race window, Thread B could acquire RTNL and try to remove the bridge device.  Then, rtnl_unlock() by Thread B will release RTNL and wait for netdev_put() by Thread A.  Thread A, however, must hold RTNL after the unlock in dev_ifsioc(), which may take long under RTNL pressure, resulting in the splat by Thread B.    Thread A (SIOCBRDELIF)           Thread B (SIOCBRDELBR)   ----------------------           ----------------------   sock_ioctl                       sock_ioctl   `- sock_do_ioctl                 `- br_ioctl_call      `- dev_ioctl                     `- br_ioctl_stub         |- rtnl_lock                     |         |- dev_ifsioc                    '         '  |- dev = __dev_get_by_name(...)            |- netdev_hold(dev, ...)      .        /   |- rtnl_unlock  ------.       |        |   |- br_ioctl_call       `--->  |- rtnl_lock   Race |   |  `- br_ioctl_stub           |- br_del_bridge   Window   |     |                       |  |- dev = __dev_get_by_name(...)        |   |     |  May take long        |  `- br_dev_delete(dev, ...)        |   |     |  under RTNL pressure  |     `- unregister_netdevice_queue(dev, ...)        |   |     |               |       `- rtnl_unlock        \\   |     |- rtnl_lock  <-'          `- netdev_run_todo            |     |- ...                        `- netdev_run_todo            |     `- rtnl_unlock                   |- __rtnl_unlock            |                                      |- netdev_wait_allrefs_any            |- netdev_put(dev, ...)  <----------------'                                                 Wait refcnt decrement                                                 and log splat below  To avoid blocking SIOCBRDELBR unnecessarily, let's not call dev_ioctl() for SIOCBRADDIF and SIOCBRDELIF.  In the dev_ioctl() path, we do the following:    1. Copy struct ifreq by get_user_ifreq in sock_do_ioctl()   2. Check CAP_NET_ADMIN in dev_ioctl()   3. Call dev_load() in dev_ioctl()   4. Fetch the master dev from ifr.ifr_name in dev_ifsioc()  3. can be done by request_module() in br_ioctl_call(), so we move 1., 2., and 4. to br_ioctl_stub().  Note that 2. is also checked later in add_del_if(), but it's better performed before RTNL.  SIOCBRADDIF and SIOCBRDELIF have been processed in dev_ioctl() since the pre-git era, and there seems to be no specific reason to process them there.  [0]: unregister_netdevice: waiting for wpan3 to become free. Usage count = 2 ref_tracker: wpan3@ffff8880662d8608 has 1/1 users at      __netdev_tracker_alloc include/linux/netdevice.h:4282 [inline]      netdev_hold include/linux/netdevice.h:4311 [inline]      dev_ifsioc+0xc6a/0x1160 net/core/dev_ioctl.c:624      dev_ioctl+0x255/0x10c0 net/core/dev_ioctl.c:826      sock_do_ioctl+0x1ca/0x260 net/socket.c:1213      sock_ioctl+0x23a/0x6c0 net/socket.c:1318      vfs_ioctl fs/ioctl.c:51 [inline]      __do_sys_ioctl fs/ioctl.c:906 [inline]      __se_sys_ioctl fs/ioctl.c:892 [inline]      __x64_sys_ioctl+0x1a4/0x210 fs/ioctl.c:892      do_syscall_x64 arch/x86/entry/common.c:52 [inline]      do_syscall_64+0xcb/0x250 arch/x86/entry/common.c:83      entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71127",
                                "url": "https://ubuntu.com/security/CVE-2025-71127",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: mac80211: Discard Beacon frames to non-broadcast address  Beacon frames are required to be sent to the broadcast address, see IEEE Std 802.11-2020, 11.1.3.1 (\"The Address 1 field of the Beacon .. frame shall be set to the broadcast address\"). A unicast Beacon frame might be used as a targeted attack to get one of the associated STAs to do something (e.g., using CSA to move it to another channel). As such, it is better have strict filtering for this on the received side and discard all Beacon frames that are sent to an unexpected address.  This is even more important for cases where beacon protection is used. The current implementation in mac80211 is correctly discarding unicast Beacon frames if the Protected Frame bit in the Frame Control field is set to 0. However, if that bit is set to 1, the logic used for checking for configured BIGTK(s) does not actually work. If the driver does not have logic for dropping unicast Beacon frames with Protected Frame bit 1, these frames would be accepted in mac80211 processing as valid Beacon frames even though they are not protected. This would allow beacon protection to be bypassed. While the logic for checking beacon protection could be extended to cover this corner case, a more generic check for discard all Beacon frames based on A1=unicast address covers this without needing additional changes.  Address all these issues by dropping received Beacon frames if they are sent to a non-broadcast address.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71081",
                                "url": "https://ubuntu.com/security/CVE-2025-71081",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: stm32: sai: fix OF node leak on probe  The reference taken to the sync provider OF node when probing the platform device is currently only dropped if the set_sync() callback fails during DAI probe.  Make sure to drop the reference on platform probe failures (e.g. probe deferral) and on driver unbind.  This also avoids a potential use-after-free in case the DAI is ever reprobed without first rebinding the platform driver.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71078",
                                "url": "https://ubuntu.com/security/CVE-2025-71078",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  powerpc/64s/slb: Fix SLB multihit issue during SLB preload  On systems using the hash MMU, there is a software SLB preload cache that mirrors the entries loaded into the hardware SLB buffer. This preload cache is subject to periodic eviction — typically after every 256 context switches — to remove old entry.  To optimize performance, the kernel skips switch_mmu_context() in switch_mm_irqs_off() when the prev and next mm_struct are the same. However, on hash MMU systems, this can lead to inconsistencies between the hardware SLB and the software preload cache.  If an SLB entry for a process is evicted from the software cache on one CPU, and the same process later runs on another CPU without executing switch_mmu_context(), the hardware SLB may retain stale entries. If the kernel then attempts to reload that entry, it can trigger an SLB multi-hit error.  The following timeline shows how stale SLB entries are created and can cause a multi-hit error when a process moves between CPUs without a MMU context switch.  CPU 0                                   CPU 1 -----                                    ----- Process P exec                                    swapper/1  load_elf_binary   begin_new_exc     activate_mm      switch_mm_irqs_off       switch_mmu_context        switch_slb        /*         * This invalidates all         * the entries in the HW         * and setup the new HW         * SLB entries as per the         * preload cache.         */ context_switch sched_migrate_task migrates process P to cpu-1  Process swapper/0                       context switch (to process P) (uses mm_struct of Process P)           switch_mm_irqs_off()                                          switch_slb                                            load_slb++                                             /*                                             * load_slb becomes 0 here                                             * and we evict an entry from                                             * the preload cache with                                             * preload_age(). We still                                             * keep HW SLB and preload                                             * cache in sync, that is                                             * because all HW SLB entries                                             * anyways gets evicted in                                             * switch_slb during SLBIA.                                             * We then only add those                                             * entries back in HW SLB,                                             * which are currently                                             * present in preload_cache                                             * (after eviction).                                             */                                         load_elf_binary continues...                                          setup_new_exec()                                           slb_setup_new_exec()                                          sched_switch event                                         sched_migrate_task migrates                                         process P to cpu-0  context_switch from swapper/0 to Process P  switch_mm_irqs_off()   /*    * Since both prev and next mm struct are same we don't call    * switch_mmu_context(). This will cause the HW SLB and SW preload    * cache to go out of sync in preload_new_slb_context. Because there    * was an SLB entry which was evicted from both HW and preload cache    * on cpu-1. Now later in preload_new_slb_context(), when we will try    * to add the same preload entry again, we will add this to the SW    * preload cache and then will add it to the HW SLB. Since on cpu-0    * this entry was never invalidated, hence adding this entry to the HW    * SLB will cause a SLB multi-hit error.    */ load_elf_binary cont ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68803",
                                "url": "https://ubuntu.com/security/CVE-2025-68803",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: NFSv4 file creation neglects setting ACL  An NFSv4 client that sets an ACL with a named principal during file creation retrieves the ACL afterwards, and finds that it is only a default ACL (based on the mode bits) and not the ACL that was requested during file creation. This violates RFC 8881 section 6.4.1.3: \"the ACL attribute is set as given\".  The issue occurs in nfsd_create_setattr(), which calls nfsd_attrs_valid() to determine whether to call nfsd_setattr(). However, nfsd_attrs_valid() checks only for iattr changes and security labels, but not POSIX ACLs. When only an ACL is present, the function returns false, nfsd_setattr() is skipped, and the POSIX ACL is never applied to the inode.  Subsequently, when the client retrieves the ACL, the server finds no POSIX ACL on the inode and returns one generated from the file's mode bits rather than returning the originally-specified ACL.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71120",
                                "url": "https://ubuntu.com/security/CVE-2025-71120",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in gss_read_proxy_verf  A zero length gss_token results in pages == 0 and in_token->pages[0] is NULL. The code unconditionally evaluates page_address(in_token->pages[0]) for the initial memcpy, which can dereference NULL even when the copy length is 0. Guard the first memcpy so it only runs when length > 0.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71113",
                                "url": "https://ubuntu.com/security/CVE-2025-71113",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - zero initialize memory allocated via sock_kmalloc  Several crypto user API contexts and requests allocated with sock_kmalloc() were left uninitialized, relying on callers to set fields explicitly. This resulted in the use of uninitialized data in certain error paths or when new fields are added in the future.  The ACVP patches also contain two user-space interface files: algif_kpp.c and algif_akcipher.c. These too rely on proper initialization of their context structures.  A particular issue has been observed with the newly added 'inflight' variable introduced in af_alg_ctx by commit:    67b164a871af (\"crypto: af_alg - Disallow multiple in-flight AIO requests\")  Because the context is not memset to zero after allocation, the inflight variable has contained garbage values. As a result, af_alg_alloc_areq() has incorrectly returned -EBUSY randomly when the garbage value was interpreted as true:    https://github.com/gregkh/linux/blame/master/crypto/af_alg.c#L1209  The check directly tests ctx->inflight without explicitly comparing against true/false. Since inflight is only ever set to true or false later, an uninitialized value has triggered -EBUSY failures. Zero-initializing memory allocated with sock_kmalloc() ensures inflight and other fields start in a known state, removing random issues caused by uninitialized data.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71068",
                                "url": "https://ubuntu.com/security/CVE-2025-71068",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  svcrdma: bound check rq_pages index in inline path  svc_rdma_copy_inline_range indexed rqstp->rq_pages[rc_curpage] without verifying rc_curpage stays within the allocated page array. Add guards before the first use and after advancing to a new page.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68821",
                                "url": "https://ubuntu.com/security/CVE-2025-68821",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fuse: fix readahead reclaim deadlock  Commit e26ee4efbc79 (\"fuse: allocate ff->release_args only if release is needed\") skips allocating ff->release_args if the server does not implement open. However in doing so, fuse_prepare_release() now skips grabbing the reference on the inode, which makes it possible for an inode to be evicted from the dcache while there are inflight readahead requests. This causes a deadlock if the server triggers reclaim while servicing the readahead request and reclaim attempts to evict the inode of the file being read ahead. Since the folio is locked during readahead, when reclaim evicts the fuse inode and fuse_evict_inode() attempts to remove all folios associated with the inode from the page cache (truncate_inode_pages_range()), reclaim will block forever waiting for the lock since readahead cannot relinquish the lock because it is itself blocked in reclaim:  >>> stack_trace(1504735)  folio_wait_bit_common (mm/filemap.c:1308:4)  folio_lock (./include/linux/pagemap.h:1052:3)  truncate_inode_pages_range (mm/truncate.c:336:10)  fuse_evict_inode (fs/fuse/inode.c:161:2)  evict (fs/inode.c:704:3)  dentry_unlink_inode (fs/dcache.c:412:3)  __dentry_kill (fs/dcache.c:615:3)  shrink_kill (fs/dcache.c:1060:12)  shrink_dentry_list (fs/dcache.c:1087:3)  prune_dcache_sb (fs/dcache.c:1168:2)  super_cache_scan (fs/super.c:221:10)  do_shrink_slab (mm/shrinker.c:435:9)  shrink_slab (mm/shrinker.c:626:10)  shrink_node (mm/vmscan.c:5951:2)  shrink_zones (mm/vmscan.c:6195:3)  do_try_to_free_pages (mm/vmscan.c:6257:3)  do_swap_page (mm/memory.c:4136:11)  handle_pte_fault (mm/memory.c:5562:10)  handle_mm_fault (mm/memory.c:5870:9)  do_user_addr_fault (arch/x86/mm/fault.c:1338:10)  handle_page_fault (arch/x86/mm/fault.c:1481:3)  exc_page_fault (arch/x86/mm/fault.c:1539:2)  asm_exc_page_fault+0x22/0x27  Fix this deadlock by allocating ff->release_args and grabbing the reference on the inode when preparing the file for release even if the server does not implement open. The inode reference will be dropped when the last reference on the fuse file is dropped (see fuse_file_put() -> fuse_release_end()).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68796",
                                "url": "https://ubuntu.com/security/CVE-2025-68796",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid updating zero-sized extent in extent cache  As syzbot reported:  F2FS-fs (loop0): __update_extent_tree_range: extent len is zero, type: 0, extent [0, 0, 0], age [0, 0] ------------[ cut here ]------------ kernel BUG at fs/f2fs/extent_cache.c:678! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 0 UID: 0 PID: 5336 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:__update_extent_tree_range+0x13bc/0x1500 fs/f2fs/extent_cache.c:678 Call Trace:  <TASK>  f2fs_update_read_extent_cache_range+0x192/0x3e0 fs/f2fs/extent_cache.c:1085  f2fs_do_zero_range fs/f2fs/file.c:1657 [inline]  f2fs_zero_range+0x10c1/0x1580 fs/f2fs/file.c:1737  f2fs_fallocate+0x583/0x990 fs/f2fs/file.c:2030  vfs_fallocate+0x669/0x7e0 fs/open.c:342  ioctl_preallocate fs/ioctl.c:289 [inline]  file_ioctl+0x611/0x780 fs/ioctl.c:-1  do_vfs_ioctl+0xb33/0x1430 fs/ioctl.c:576  __do_sys_ioctl fs/ioctl.c:595 [inline]  __se_sys_ioctl+0x82/0x170 fs/ioctl.c:583  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f07bc58eec9  In error path of f2fs_zero_range(), it may add a zero-sized extent into extent cache, it should be avoided.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71105",
                                "url": "https://ubuntu.com/security/CVE-2025-71105",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: use global inline_xattr_slab instead of per-sb slab cache  As Hong Yun reported in mailing list:  loop7: detected capacity change from 0 to 131072 ------------[ cut here ]------------ kmem_cache of name 'f2fs_xattr_entry-7:7' already exists WARNING: CPU: 0 PID: 24426 at mm/slab_common.c:110 kmem_cache_sanity_check mm/slab_common.c:109 [inline] WARNING: CPU: 0 PID: 24426 at mm/slab_common.c:110 __kmem_cache_create_args+0xa6/0x320 mm/slab_common.c:307 CPU: 0 UID: 0 PID: 24426 Comm: syz.7.1370 Not tainted 6.17.0-rc4 #1 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 RIP: 0010:kmem_cache_sanity_check mm/slab_common.c:109 [inline] RIP: 0010:__kmem_cache_create_args+0xa6/0x320 mm/slab_common.c:307 Call Trace:  __kmem_cache_create include/linux/slab.h:353 [inline]  f2fs_kmem_cache_create fs/f2fs/f2fs.h:2943 [inline]  f2fs_init_xattr_caches+0xa5/0xe0 fs/f2fs/xattr.c:843  f2fs_fill_super+0x1645/0x2620 fs/f2fs/super.c:4918  get_tree_bdev_flags+0x1fb/0x260 fs/super.c:1692  vfs_get_tree+0x43/0x140 fs/super.c:1815  do_new_mount+0x201/0x550 fs/namespace.c:3808  do_mount fs/namespace.c:4136 [inline]  __do_sys_mount fs/namespace.c:4347 [inline]  __se_sys_mount+0x298/0x2f0 fs/namespace.c:4324  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0x8e/0x3a0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x76/0x7e  The bug can be reproduced w/ below scripts: - mount /dev/vdb /mnt1 - mount /dev/vdc /mnt2 - umount /mnt1 - mounnt /dev/vdb /mnt1  The reason is if we created two slab caches, named f2fs_xattr_entry-7:3 and f2fs_xattr_entry-7:7, and they have the same slab size. Actually, slab system will only create one slab cache core structure which has slab name of \"f2fs_xattr_entry-7:3\", and two slab caches share the same structure and cache address.  So, if we destroy f2fs_xattr_entry-7:3 cache w/ cache address, it will decrease reference count of slab cache, rather than release slab cache entirely, since there is one more user has referenced the cache.  Then, if we try to create slab cache w/ name \"f2fs_xattr_entry-7:3\" again, slab system will find that there is existed cache which has the same name and trigger the warning.  Let's changes to use global inline_xattr_slab instead of per-sb slab cache for fixing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68344",
                                "url": "https://ubuntu.com/security/CVE-2025-68344",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: wavefront: Fix integer overflow in sample size validation  The wavefront_send_sample() function has an integer overflow issue when validating sample size. The header->size field is u32 but gets cast to int for comparison with dev->freemem  Fix by using unsigned comparison to avoid integer overflow.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71077",
                                "url": "https://ubuntu.com/security/CVE-2025-71077",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tpm: Cap the number of PCR banks  tpm2_get_pcr_allocation() does not cap any upper limit for the number of banks. Cap the limit to eight banks so that out of bounds values coming from external I/O cause on only limited harm.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68282",
                                "url": "https://ubuntu.com/security/CVE-2025-68282",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: udc: fix use-after-free in usb_gadget_state_work  A race condition during gadget teardown can lead to a use-after-free in usb_gadget_state_work(), as reported by KASAN:    BUG: KASAN: invalid-access in sysfs_notify+0x2c/0xd0   Workqueue: events usb_gadget_state_work  The fundamental race occurs because a concurrent event (e.g., an interrupt) can call usb_gadget_set_state() and schedule gadget->work at any time during the cleanup process in usb_del_gadget().  Commit 399a45e5237c (\"usb: gadget: core: flush gadget workqueue after device removal\") attempted to fix this by moving flush_work() to after device_del(). However, this does not fully solve the race, as a new work item can still be scheduled *after* flush_work() completes but before the gadget's memory is freed, leading to the same use-after-free.  This patch fixes the race condition robustly by introducing a 'teardown' flag and a 'state_lock' spinlock to the usb_gadget struct. The flag is set during cleanup in usb_del_gadget() *before* calling flush_work() to prevent any new work from being scheduled once cleanup has commenced. The scheduling site, usb_gadget_set_state(), now checks this flag under the lock before queueing the work, thus safely closing the race window.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-22022",
                                "url": "https://ubuntu.com/security/CVE-2025-22022",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: xhci: Apply the link chain quirk on NEC isoc endpoints  Two clearly different specimens of NEC uPD720200 (one with start/stop bug, one without) were seen to cause IOMMU faults after some Missed Service Errors. Faulting address is immediately after a transfer ring segment and patched dynamic debug messages revealed that the MSE was received when waiting for a TD near the end of that segment:  [ 1.041954] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ffa08fe0 [ 1.042120] xhci_hcd: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0005 address=0xffa09000 flags=0x0000] [ 1.042146] xhci_hcd: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0005 address=0xffa09040 flags=0x0000]  It gets even funnier if the next page is a ring segment accessible to the HC. Below, it reports MSE in segment at ff1e8000, plows through a zero-filled page at ff1e9000 and starts reporting events for TRBs in page at ff1ea000 every microframe, instead of jumping to seg ff1e6000.  [ 7.041671] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ff1e8fe0 [ 7.041999] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ff1e8fe0 [ 7.042011] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042028] xhci_hcd: All TDs skipped for slot 1 ep 2. Clear skip flag. [ 7.042134] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042138] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 31 [ 7.042144] xhci_hcd: Looking for event-dma 00000000ff1ea040 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.042259] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042262] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 31 [ 7.042266] xhci_hcd: Looking for event-dma 00000000ff1ea050 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820  At some point completion events change from Isoch Buffer Overrun to Short Packet and the HC finally finds cycle bit mismatch in ff1ec000.  [ 7.098130] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 [ 7.098132] xhci_hcd: Looking for event-dma 00000000ff1ecc50 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.098254] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 [ 7.098256] xhci_hcd: Looking for event-dma 00000000ff1ecc60 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.098379] xhci_hcd: Overrun event on slot 1 ep 2  It's possible that data from the isochronous device were written to random buffers of pending TDs on other endpoints (either IN or OUT), other devices or even other HCs in the same IOMMU domain.  Lastly, an error from a different USB device on another HC. Was it caused by the above? I don't know, but it may have been. The disk was working without any other issues and generated PCIe traffic to starve the NEC of upstream BW and trigger those MSEs. The two HCs shared one x1 slot by means of a commercial \"PCIe splitter\" board.  [ 7.162604] usb 10-2: reset SuperSpeed USB device number 3 using xhci_hcd [ 7.178990] sd 9:0:0:0: [sdb] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x07 driverbyte=DRIVER_OK cmd_age=0s [ 7.179001] sd 9:0:0:0: [sdb] tag#0 CDB: opcode=0x28 28 00 04 02 ae 00 00 02 00 00 [ 7.179004] I/O error, dev sdb, sector 67284480 op 0x0:(READ) flags 0x80700 phys_seg 5 prio class 0  Fortunately, it appears that this ridiculous bug is avoided by setting the chain bit of Link TRBs on isochronous rings. Other ancient HCs are known which also expect the bit to be set and they ignore Link TRBs if it's not. Reportedly, 0.95 spec guaranteed that the bit is set.  The bandwidth-starved NEC HC running a 32KB/uframe UVC endpoint reports tens of MSEs per second and runs into the bug within seconds. Chaining Link TRBs allows the same workload to run for many minutes, many times.  No ne ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40110",
                                "url": "https://ubuntu.com/security/CVE-2025-40110",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vmwgfx: Fix a null-ptr access in the cursor snooper  Check that the resource which is converted to a surface exists before trying to use the cursor snooper on it.  vmw_cmd_res_check allows explicit invalid (SVGA3D_INVALID_ID) identifiers because some svga commands accept SVGA3D_INVALID_ID to mean \"no surface\", unfortunately functions that accept the actual surfaces as objects might (and in case of the cursor snooper, do not) be able to handle null objects. Make sure that we validate not only the identifier (via the vmw_cmd_res_check) but also check that the actual resource exists before trying to do something with it.  Fixes unchecked null-ptr reference in the snooping code.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-12 02:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38022",
                                "url": "https://ubuntu.com/security/CVE-2025-38022",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/core: Fix \"KASAN: slab-use-after-free Read in ib_register_device\" problem  Call Trace:   __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:408 [inline]  print_report+0xc3/0x670 mm/kasan/report.c:521  kasan_report+0xe0/0x110 mm/kasan/report.c:634  strlen+0x93/0xa0 lib/string.c:420  __fortify_strlen include/linux/fortify-string.h:268 [inline]  get_kobj_path_length lib/kobject.c:118 [inline]  kobject_get_path+0x3f/0x2a0 lib/kobject.c:158  kobject_uevent_env+0x289/0x1870 lib/kobject_uevent.c:545  ib_register_device drivers/infiniband/core/device.c:1472 [inline]  ib_register_device+0x8cf/0xe00 drivers/infiniband/core/device.c:1393  rxe_register_device+0x275/0x320 drivers/infiniband/sw/rxe/rxe_verbs.c:1552  rxe_net_add+0x8e/0xe0 drivers/infiniband/sw/rxe/rxe_net.c:550  rxe_newlink+0x70/0x190 drivers/infiniband/sw/rxe/rxe.c:225  nldev_newlink+0x3a3/0x680 drivers/infiniband/core/nldev.c:1796  rdma_nl_rcv_msg+0x387/0x6e0 drivers/infiniband/core/netlink.c:195  rdma_nl_rcv_skb.constprop.0.isra.0+0x2e5/0x450  netlink_unicast_kernel net/netlink/af_netlink.c:1313 [inline]  netlink_unicast+0x53a/0x7f0 net/netlink/af_netlink.c:1339  netlink_sendmsg+0x8d1/0xdd0 net/netlink/af_netlink.c:1883  sock_sendmsg_nosec net/socket.c:712 [inline]  __sock_sendmsg net/socket.c:727 [inline]  ____sys_sendmsg+0xa95/0xc70 net/socket.c:2566  ___sys_sendmsg+0x134/0x1d0 net/socket.c:2620  __sys_sendmsg+0x16d/0x220 net/socket.c:2652  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xcd/0x260 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  This problem is similar to the problem that the commit 1d6a9e7449e2 (\"RDMA/core: Fix use-after-free when rename device name\") fixes.  The root cause is: the function ib_device_rename() renames the name with lock. But in the function kobject_uevent(), this name is accessed without lock protection at the same time.  The solution is to add the lock protection when this name is accessed in the function kobject_uevent().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-06-18 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71083",
                                "url": "https://ubuntu.com/security/CVE-2025-71083",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/ttm: Avoid NULL pointer deref for evicted BOs  It is possible for a BO to exist that is not currently associated with a resource, e.g. because it has been evicted.  When devcoredump tries to read the contents of all BOs for dumping, we need to expect this as well -- in this case, ENODATA is recorded instead of the buffer contents.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71079",
                                "url": "https://ubuntu.com/security/CVE-2025-71079",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: nfc: fix deadlock between nfc_unregister_device and rfkill_fop_write  A deadlock can occur between nfc_unregister_device() and rfkill_fop_write() due to lock ordering inversion between device_lock and rfkill_global_mutex.  The problematic lock order is:  Thread A (rfkill_fop_write):   rfkill_fop_write()     mutex_lock(&rfkill_global_mutex)       rfkill_set_block()         nfc_rfkill_set_block()           nfc_dev_down()             device_lock(&dev->dev)    <- waits for device_lock  Thread B (nfc_unregister_device):   nfc_unregister_device()     device_lock(&dev->dev)       rfkill_unregister()         mutex_lock(&rfkill_global_mutex)  <- waits for rfkill_global_mutex  This creates a classic ABBA deadlock scenario.  Fix this by moving rfkill_unregister() and rfkill_destroy() outside the device_lock critical section. Store the rfkill pointer in a local variable before releasing the lock, then call rfkill_unregister() after releasing device_lock.  This change is safe because rfkill_fop_write() holds rfkill_global_mutex while calling the rfkill callbacks, and rfkill_unregister() also acquires rfkill_global_mutex before cleanup. Therefore, rfkill_unregister() will wait for any ongoing callback to complete before proceeding, and device_del() is only called after rfkill_unregister() returns, preventing any use-after-free.  The similar lock ordering in nfc_register_device() (device_lock -> rfkill_global_mutex via rfkill_register) is safe because during registration the device is not yet in rfkill_list, so no concurrent rfkill operations can occur on this device.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71093",
                                "url": "https://ubuntu.com/security/CVE-2025-71093",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  e1000: fix OOB in e1000_tbi_should_accept()  In e1000_tbi_should_accept() we read the last byte of the frame via 'data[length - 1]' to evaluate the TBI workaround. If the descriptor- reported length is zero or larger than the actual RX buffer size, this read goes out of bounds and can hit unrelated slab objects. The issue is observed from the NAPI receive path (e1000_clean_rx_irq):  ================================================================== BUG: KASAN: slab-out-of-bounds in e1000_tbi_should_accept+0x610/0x790 Read of size 1 at addr ffff888014114e54 by task sshd/363  CPU: 0 PID: 363 Comm: sshd Not tainted 5.18.0-rc1 #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014 Call Trace:  <IRQ>  dump_stack_lvl+0x5a/0x74  print_address_description+0x7b/0x440  print_report+0x101/0x200  kasan_report+0xc1/0xf0  e1000_tbi_should_accept+0x610/0x790  e1000_clean_rx_irq+0xa8c/0x1110  e1000_clean+0xde2/0x3c10  __napi_poll+0x98/0x380  net_rx_action+0x491/0xa20  __do_softirq+0x2c9/0x61d  do_softirq+0xd1/0x120  </IRQ>  <TASK>  __local_bh_enable_ip+0xfe/0x130  ip_finish_output2+0x7d5/0xb00  __ip_queue_xmit+0xe24/0x1ab0  __tcp_transmit_skb+0x1bcb/0x3340  tcp_write_xmit+0x175d/0x6bd0  __tcp_push_pending_frames+0x7b/0x280  tcp_sendmsg_locked+0x2e4f/0x32d0  tcp_sendmsg+0x24/0x40  sock_write_iter+0x322/0x430  vfs_write+0x56c/0xa60  ksys_write+0xd1/0x190  do_syscall_64+0x43/0x90  entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f511b476b10 Code: 73 01 c3 48 8b 0d 88 d3 2b 00 f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 83 3d f9 2b 2c 00 00 75 10 b8 01 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 31 c3 48 83 ec 08 e8 8e 9b 01 00 48 89 04 24 RSP: 002b:00007ffc9211d4e8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 0000000000004024 RCX: 00007f511b476b10 RDX: 0000000000004024 RSI: 0000559a9385962c RDI: 0000000000000003 RBP: 0000559a9383a400 R08: fffffffffffffff0 R09: 0000000000004f00 R10: 0000000000000070 R11: 0000000000000246 R12: 0000000000000000 R13: 00007ffc9211d57f R14: 0000559a9347bde7 R15: 0000000000000003  </TASK> Allocated by task 1:  __kasan_krealloc+0x131/0x1c0  krealloc+0x90/0xc0  add_sysfs_param+0xcb/0x8a0  kernel_add_sysfs_param+0x81/0xd4  param_sysfs_builtin+0x138/0x1a6  param_sysfs_init+0x57/0x5b  do_one_initcall+0x104/0x250  do_initcall_level+0x102/0x132  do_initcalls+0x46/0x74  kernel_init_freeable+0x28f/0x393  kernel_init+0x14/0x1a0  ret_from_fork+0x22/0x30 The buggy address belongs to the object at ffff888014114000  which belongs to the cache kmalloc-2k of size 2048 The buggy address is located 1620 bytes to the right of  2048-byte region [ffff888014114000, ffff888014114800] The buggy address belongs to the physical page: page:ffffea0000504400 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x14110 head:ffffea0000504400 order:3 compound_mapcount:0 compound_pincount:0 flags: 0x100000000010200(slab|head|node=0|zone=1) raw: 0100000000010200 0000000000000000 dead000000000001 ffff888013442000 raw: 0000000000000000 0000000000080008 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected ==================================================================  This happens because the TBI check unconditionally dereferences the last byte without validating the reported length first:  \tu8 last_byte = *(data + length - 1);  Fix by rejecting the frame early if the length is zero, or if it exceeds adapter->rx_buffer_len. This preserves the TBI workaround semantics for valid frames and prevents touching memory beyond the RX buffer.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71084",
                                "url": "https://ubuntu.com/security/CVE-2025-71084",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/cm: Fix leaking the multicast GID table reference  If the CM ID is destroyed while the CM event for multicast creating is still queued the cancel_work_sync() will prevent the work from running which also prevents destroying the ah_attr. This leaks a refcount and triggers a WARN:     GID entry ref leak for dev syz1 index 2 ref=573    WARNING: CPU: 1 PID: 655 at drivers/infiniband/core/cache.c:809 release_gid_table drivers/infiniband/core/cache.c:806 [inline]    WARNING: CPU: 1 PID: 655 at drivers/infiniband/core/cache.c:809 gid_table_release_one+0x284/0x3cc drivers/infiniband/core/cache.c:886  Destroy the ah_attr after canceling the work, it is safe to call this twice.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71096",
                                "url": "https://ubuntu.com/security/CVE-2025-71096",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly  The netlink response for RDMA_NL_LS_OP_IP_RESOLVE should always have a LS_NLA_TYPE_DGID attribute, it is invalid if it does not.  Use the nl parsing logic properly and call nla_parse_deprecated() to fill the nlattrs array and then directly index that array to get the data for the DGID. Just fail if it is NULL.  Remove the for loop searching for the nla, and squash the validation and parsing into one function.  Fixes an uninitialized read from the stack triggered by userspace if it does not provide the DGID to a kernel initiated RDMA_NL_LS_OP_IP_RESOLVE query.      BUG: KMSAN: uninit-value in hex_byte_pack include/linux/hex.h:13 [inline]     BUG: KMSAN: uninit-value in ip6_string+0xef4/0x13a0 lib/vsprintf.c:1490      hex_byte_pack include/linux/hex.h:13 [inline]      ip6_string+0xef4/0x13a0 lib/vsprintf.c:1490      ip6_addr_string+0x18a/0x3e0 lib/vsprintf.c:1509      ip_addr_string+0x245/0xee0 lib/vsprintf.c:1633      pointer+0xc09/0x1bd0 lib/vsprintf.c:2542      vsnprintf+0xf8a/0x1bd0 lib/vsprintf.c:2930      vprintk_store+0x3ae/0x1530 kernel/printk/printk.c:2279      vprintk_emit+0x307/0xcd0 kernel/printk/printk.c:2426      vprintk_default+0x3f/0x50 kernel/printk/printk.c:2465      vprintk+0x36/0x50 kernel/printk/printk_safe.c:82      _printk+0x17e/0x1b0 kernel/printk/printk.c:2475      ib_nl_process_good_ip_rsep drivers/infiniband/core/addr.c:128 [inline]      ib_nl_handle_ip_res_resp+0x963/0x9d0 drivers/infiniband/core/addr.c:141      rdma_nl_rcv_msg drivers/infiniband/core/netlink.c:-1 [inline]      rdma_nl_rcv_skb drivers/infiniband/core/netlink.c:239 [inline]      rdma_nl_rcv+0xefa/0x11c0 drivers/infiniband/core/netlink.c:259      netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]      netlink_unicast+0xf04/0x12b0 net/netlink/af_netlink.c:1346      netlink_sendmsg+0x10b3/0x1250 net/netlink/af_netlink.c:1896      sock_sendmsg_nosec net/socket.c:714 [inline]      __sock_sendmsg+0x333/0x3d0 net/socket.c:729      ____sys_sendmsg+0x7e0/0xd80 net/socket.c:2617      ___sys_sendmsg+0x271/0x3b0 net/socket.c:2671      __sys_sendmsg+0x1aa/0x300 net/socket.c:2703      __compat_sys_sendmsg net/compat.c:346 [inline]      __do_compat_sys_sendmsg net/compat.c:353 [inline]      __se_compat_sys_sendmsg net/compat.c:350 [inline]      __ia32_compat_sys_sendmsg+0xa4/0x100 net/compat.c:350      ia32_sys_call+0x3f6c/0x4310 arch/x86/include/generated/asm/syscalls_32.h:371      do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]      __do_fast_syscall_32+0xb0/0x150 arch/x86/entry/syscall_32.c:306      do_fast_syscall_32+0x38/0x80 arch/x86/entry/syscall_32.c:331      do_SYSENTER_32+0x1f/0x30 arch/x86/entry/syscall_32.c:3",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71136",
                                "url": "https://ubuntu.com/security/CVE-2025-71136",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: adv7842: Avoid possible out-of-bounds array accesses in adv7842_cp_log_status()  It's possible for cp_read() and hdmi_read() to return -EIO. Those values are further used as indexes for accessing arrays.  Fix that by checking return values where it's needed.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71133",
                                "url": "https://ubuntu.com/security/CVE-2025-71133",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/irdma: avoid invalid read in irdma_net_event  irdma_net_event() should not dereference anything from \"neigh\" (alias \"ptr\") until it has checked that the event is NETEVENT_NEIGH_UPDATE. Other events come with different structures pointed to by \"ptr\" and they may be smaller than struct neighbour.  Move the read of neigh->dev under the NETEVENT_NEIGH_UPDATE case.  The bug is mostly harmless, but it triggers KASAN on debug kernels:   BUG: KASAN: stack-out-of-bounds in irdma_net_event+0x32e/0x3b0 [irdma]  Read of size 8 at addr ffffc900075e07f0 by task kworker/27:2/542554   CPU: 27 PID: 542554 Comm: kworker/27:2 Kdump: loaded Not tainted 5.14.0-630.el9.x86_64+debug #1  Hardware name: [...]  Workqueue: events rt6_probe_deferred  Call Trace:   <IRQ>   dump_stack_lvl+0x60/0xb0   print_address_description.constprop.0+0x2c/0x3f0   print_report+0xb4/0x270   kasan_report+0x92/0xc0   irdma_net_event+0x32e/0x3b0 [irdma]   notifier_call_chain+0x9e/0x180   atomic_notifier_call_chain+0x5c/0x110   rt6_do_redirect+0xb91/0x1080   tcp_v6_err+0xe9b/0x13e0   icmpv6_notify+0x2b2/0x630   ndisc_redirect_rcv+0x328/0x530   icmpv6_rcv+0xc16/0x1360   ip6_protocol_deliver_rcu+0xb84/0x12e0   ip6_input_finish+0x117/0x240   ip6_input+0xc4/0x370   ipv6_rcv+0x420/0x7d0   __netif_receive_skb_one_core+0x118/0x1b0   process_backlog+0xd1/0x5d0   __napi_poll.constprop.0+0xa3/0x440   net_rx_action+0x78a/0xba0   handle_softirqs+0x2d4/0x9c0   do_softirq+0xad/0xe0   </IRQ>",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71086",
                                "url": "https://ubuntu.com/security/CVE-2025-71086",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: rose: fix invalid array index in rose_kill_by_device()  rose_kill_by_device() collects sockets into a local array[] and then iterates over them to disconnect sockets bound to a device being brought down.  The loop mistakenly indexes array[cnt] instead of array[i]. For cnt < ARRAY_SIZE(array), this reads an uninitialized entry; for cnt == ARRAY_SIZE(array), it is an out-of-bounds read. Either case can lead to an invalid socket pointer dereference and also leaks references taken via sock_hold().  Fix the index to use i.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71097",
                                "url": "https://ubuntu.com/security/CVE-2025-71097",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: Fix reference count leak when using error routes with nexthop objects  When a nexthop object is deleted, it is marked as dead and then fib_table_flush() is called to flush all the routes that are using the dead nexthop.  The current logic in fib_table_flush() is to only flush error routes (e.g., blackhole) when it is called as part of network namespace dismantle (i.e., with flush_all=true). Therefore, error routes are not flushed when their nexthop object is deleted:   # ip link add name dummy1 up type dummy  # ip nexthop add id 1 dev dummy1  # ip route add 198.51.100.1/32 nhid 1  # ip route add blackhole 198.51.100.2/32 nhid 1  # ip nexthop del id 1  # ip route show  blackhole 198.51.100.2 nhid 1 dev dummy1  As such, they keep holding a reference on the nexthop object which in turn holds a reference on the nexthop device, resulting in a reference count leak:   # ip link del dev dummy1  [   70.516258] unregister_netdevice: waiting for dummy1 to become free. Usage count = 2  Fix by flushing error routes when their nexthop is marked as dead.  IPv6 does not suffer from this problem.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71085",
                                "url": "https://ubuntu.com/security/CVE-2025-71085",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()  There exists a kernel oops caused by a BUG_ON(nhead < 0) at net/core/skbuff.c:2232 in pskb_expand_head(). This bug is triggered as part of the calipso_skbuff_setattr() routine when skb_cow() is passed headroom > INT_MAX (i.e. (int)(skb_headroom(skb) + len_delta) < 0).  The root cause of the bug is due to an implicit integer cast in __skb_cow(). The check (headroom > skb_headroom(skb)) is meant to ensure that delta = headroom - skb_headroom(skb) is never negative, otherwise we will trigger a BUG_ON in pskb_expand_head(). However, if headroom > INT_MAX and delta <= -NET_SKB_PAD, the check passes, delta becomes negative, and pskb_expand_head() is passed a negative value for nhead.  Fix the trigger condition in calipso_skbuff_setattr(). Avoid passing \"negative\" headroom sizes to skb_cow() within calipso_skbuff_setattr() by only using skb_cow() to grow headroom.  PoC: \tUsing `netlabelctl` tool:          netlabelctl map del default         netlabelctl calipso add pass doi:7         netlabelctl map add default address:0::1/128 protocol:calipso,7          Then run the following PoC:          int fd = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);          // setup msghdr         int cmsg_size = 2;         int cmsg_len = 0x60;         struct msghdr msg;         struct sockaddr_in6 dest_addr;         struct cmsghdr * cmsg = (struct cmsghdr *) calloc(1,                         sizeof(struct cmsghdr) + cmsg_len);         msg.msg_name = &dest_addr;         msg.msg_namelen = sizeof(dest_addr);         msg.msg_iov = NULL;         msg.msg_iovlen = 0;         msg.msg_control = cmsg;         msg.msg_controllen = cmsg_len;         msg.msg_flags = 0;          // setup sockaddr         dest_addr.sin6_family = AF_INET6;         dest_addr.sin6_port = htons(31337);         dest_addr.sin6_flowinfo = htonl(31337);         dest_addr.sin6_addr = in6addr_loopback;         dest_addr.sin6_scope_id = 31337;          // setup cmsghdr         cmsg->cmsg_len = cmsg_len;         cmsg->cmsg_level = IPPROTO_IPV6;         cmsg->cmsg_type = IPV6_HOPOPTS;         char * hop_hdr = (char *)cmsg + sizeof(struct cmsghdr);         hop_hdr[1] = 0x9; //set hop size - (0x9 + 1) * 8 = 80          sendmsg(fd, &msg, 0);",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71137",
                                "url": "https://ubuntu.com/security/CVE-2025-71137",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  octeontx2-pf: fix \"UBSAN: shift-out-of-bounds error\"  This patch ensures that the RX ring size (rx_pending) is not set below the permitted length. This avoids UBSAN shift-out-of-bounds errors when users passes small or zero ring sizes via ethtool -G.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71094",
                                "url": "https://ubuntu.com/security/CVE-2025-71094",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: asix: validate PHY address before use  The ASIX driver reads the PHY address from the USB device via asix_read_phy_addr(). A malicious or faulty device can return an invalid address (>= PHY_MAX_ADDR), which causes a warning in mdiobus_get_phy():    addr 207 out of range   WARNING: drivers/net/phy/mdio_bus.c:76  Validate the PHY address in asix_read_phy_addr() and remove the now-redundant check in ax88172a.c.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71132",
                                "url": "https://ubuntu.com/security/CVE-2025-71132",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smc91x: fix broken irq-context in PREEMPT_RT  When smc91x.c is built with PREEMPT_RT, the following splat occurs in FVP_RevC:  [   13.055000] smc91x LNRO0003:00 eth0: link up, 10Mbps, half-duplex, lpa 0x0000 [   13.062137] BUG: workqueue leaked atomic, lock or RCU: kworker/2:1[106] [   13.062137]      preempt=0x00000000 lock=0->0 RCU=0->1 workfn=mld_ifc_work [   13.062266] C ** replaying previous printk message ** [   13.062266] CPU: 2 UID: 0 PID: 106 Comm: kworker/2:1 Not tainted 6.18.0-dirty #179 PREEMPT_{RT,(full)} [   13.062353] Hardware name:  , BIOS [   13.062382] Workqueue: mld mld_ifc_work [   13.062469] Call trace: [   13.062494]  show_stack+0x24/0x40 (C) [   13.062602]  __dump_stack+0x28/0x48 [   13.062710]  dump_stack_lvl+0x7c/0xb0 [   13.062818]  dump_stack+0x18/0x34 [   13.062926]  process_scheduled_works+0x294/0x450 [   13.063043]  worker_thread+0x260/0x3d8 [   13.063124]  kthread+0x1c4/0x228 [   13.063235]  ret_from_fork+0x10/0x20  This happens because smc_special_trylock() disables IRQs even on PREEMPT_RT, but smc_special_unlock() does not restore IRQs on PREEMPT_RT. The reason is that smc_special_unlock() calls spin_unlock_irqrestore(), and rcu_read_unlock_bh() in __dev_queue_xmit() cannot invoke rcu_read_unlock() through __local_bh_enable_ip() when current->softirq_disable_cnt becomes zero.  To address this issue, replace smc_special_trylock() with spin_trylock_irqsave().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71154",
                                "url": "https://ubuntu.com/security/CVE-2025-71154",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: rtl8150: fix memory leak on usb_submit_urb() failure  In async_set_registers(), when usb_submit_urb() fails, the allocated   async_req structure and URB are not freed, causing a memory leak.    The completion callback async_set_reg_cb() is responsible for freeing   these allocations, but it is only called after the URB is successfully   submitted and completes (successfully or with error). If submission   fails, the callback never runs and the memory is leaked.    Fix this by freeing both the URB and the request structure in the error   path when usb_submit_urb() fails.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71091",
                                "url": "https://ubuntu.com/security/CVE-2025-71091",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  team: fix check for port enabled in team_queue_override_port_prio_changed()  There has been a syzkaller bug reported recently with the following trace:  list_del corruption, ffff888058bea080->prev is LIST_POISON2 (dead000000000122) ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:59! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 3 UID: 0 PID: 21246 Comm: syz.0.2928 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:__list_del_entry_valid_or_report+0x13e/0x200 lib/list_debug.c:59 Code: 48 c7 c7 e0 71 f0 8b e8 30 08 ef fc 90 0f 0b 48 89 ef e8 a5 02 55 fd 48 89 ea 48 89 de 48 c7 c7 40 72 f0 8b e8 13 08 ef fc 90 <0f> 0b 48 89 ef e8 88 02 55 fd 48 89 ea 48 b8 00 00 00 00 00 fc ff RSP: 0018:ffffc9000d49f370 EFLAGS: 00010286 RAX: 000000000000004e RBX: ffff888058bea080 RCX: ffffc9002817d000 RDX: 0000000000000000 RSI: ffffffff819becc6 RDI: 0000000000000005 RBP: dead000000000122 R08: 0000000000000005 R09: 0000000000000000 R10: 0000000080000000 R11: 0000000000000001 R12: ffff888039e9c230 R13: ffff888058bea088 R14: ffff888058bea080 R15: ffff888055461480 FS:  00007fbbcfe6f6c0(0000) GS:ffff8880d6d0a000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000110c3afcb0 CR3: 00000000382c7000 CR4: 0000000000352ef0 Call Trace:  <TASK>  __list_del_entry_valid include/linux/list.h:132 [inline]  __list_del_entry include/linux/list.h:223 [inline]  list_del_rcu include/linux/rculist.h:178 [inline]  __team_queue_override_port_del drivers/net/team/team_core.c:826 [inline]  __team_queue_override_port_del drivers/net/team/team_core.c:821 [inline]  team_queue_override_port_prio_changed drivers/net/team/team_core.c:883 [inline]  team_priority_option_set+0x171/0x2f0 drivers/net/team/team_core.c:1534  team_option_set drivers/net/team/team_core.c:376 [inline]  team_nl_options_set_doit+0x8ae/0xe60 drivers/net/team/team_core.c:2653  genl_family_rcv_msg_doit+0x209/0x2f0 net/netlink/genetlink.c:1115  genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]  genl_rcv_msg+0x55c/0x800 net/netlink/genetlink.c:1210  netlink_rcv_skb+0x158/0x420 net/netlink/af_netlink.c:2552  genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219  netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]  netlink_unicast+0x5aa/0x870 net/netlink/af_netlink.c:1346  netlink_sendmsg+0x8c8/0xdd0 net/netlink/af_netlink.c:1896  sock_sendmsg_nosec net/socket.c:727 [inline]  __sock_sendmsg net/socket.c:742 [inline]  ____sys_sendmsg+0xa98/0xc70 net/socket.c:2630  ___sys_sendmsg+0x134/0x1d0 net/socket.c:2684  __sys_sendmsg+0x16d/0x220 net/socket.c:2716  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xcd/0xfa0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  The problem is in this flow: 1) Port is enabled, queue_id != 0, in qom_list 2) Port gets disabled         -> team_port_disable()         -> team_queue_override_port_del()         -> del (removed from list) 3) Port is disabled, queue_id != 0, not in any list 4) Priority changes         -> team_queue_override_port_prio_changed()         -> checks: port disabled && queue_id != 0         -> calls del - hits the BUG as it is removed already  To fix this, change the check in team_queue_override_port_prio_changed() so it returns early if port is not enabled.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71098",
                                "url": "https://ubuntu.com/security/CVE-2025-71098",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ip6_gre: make ip6gre_header() robust  Over the years, syzbot found many ways to crash the kernel in ip6gre_header() [1].  This involves team or bonding drivers ability to dynamically change their dev->needed_headroom and/or dev->hard_header_len  In this particular crash mld_newpack() allocated an skb with a too small reserve/headroom, and by the time mld_sendpack() was called, syzbot managed to attach an ip6gre device.  [1] skbuff: skb_under_panic: text:ffffffff8a1d69a8 len:136 put:40 head:ffff888059bc7000 data:ffff888059bc6fe8 tail:0x70 end:0x6c0 dev:team0 ------------[ cut here ]------------  kernel BUG at net/core/skbuff.c:213 !  <TASK>   skb_under_panic net/core/skbuff.c:223 [inline]   skb_push+0xc3/0xe0 net/core/skbuff.c:2641   ip6gre_header+0xc8/0x790 net/ipv6/ip6_gre.c:1371   dev_hard_header include/linux/netdevice.h:3436 [inline]   neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618   neigh_output include/net/neighbour.h:556 [inline]   ip6_finish_output2+0xfb3/0x1480 net/ipv6/ip6_output.c:136  __ip6_finish_output net/ipv6/ip6_output.c:-1 [inline]   ip6_finish_output+0x234/0x7d0 net/ipv6/ip6_output.c:220   NF_HOOK_COND include/linux/netfilter.h:307 [inline]   ip6_output+0x340/0x550 net/ipv6/ip6_output.c:247   NF_HOOK+0x9e/0x380 include/linux/netfilter.h:318   mld_sendpack+0x8d4/0xe60 net/ipv6/mcast.c:1855   mld_send_cr net/ipv6/mcast.c:2154 [inline]   mld_ifc_work+0x83e/0xd60 net/ipv6/mcast.c:2693",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71082",
                                "url": "https://ubuntu.com/security/CVE-2025-71082",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: btusb: revert use of devm_kzalloc in btusb  This reverts commit 98921dbd00c4e (\"Bluetooth: Use devm_kzalloc in btusb.c file\").  In btusb_probe(), we use devm_kzalloc() to allocate the btusb data. This ties the lifetime of all the btusb data to the binding of a driver to one interface, INTF. In a driver that binds to other interfaces, ISOC and DIAG, this is an accident waiting to happen.  The issue is revealed in btusb_disconnect(), where calling usb_driver_release_interface(&btusb_driver, data->intf) will have devm free the data that is also being used by the other interfaces of the driver that may not be released yet.  To fix this, revert the use of devm and go back to freeing memory explicitly.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71131",
                                "url": "https://ubuntu.com/security/CVE-2025-71131",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: seqiv - Do not use req->iv after crypto_aead_encrypt  As soon as crypto_aead_encrypt is called, the underlying request may be freed by an asynchronous completion.  Thus dereferencing req->iv after it returns is invalid.  Instead of checking req->iv against info, create a new variable unaligned_info and use it for that purpose instead.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71087",
                                "url": "https://ubuntu.com/security/CVE-2025-71087",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iavf: fix off-by-one issues in iavf_config_rss_reg()  There are off-by-one bugs when configuring RSS hash key and lookup table, causing out-of-bounds reads to memory [1] and out-of-bounds writes to device registers.  Before commit 43a3d9ba34c9 (\"i40evf: Allow PF driver to configure RSS\"), the loop upper bounds were:     i <= I40E_VFQF_{HKEY,HLUT}_MAX_INDEX which is safe since the value is the last valid index.  That commit changed the bounds to:     i <= adapter->rss_{key,lut}_size / 4 where `rss_{key,lut}_size / 4` is the number of dwords, so the last valid index is `(rss_{key,lut}_size / 4) - 1`. Therefore, using `<=` accesses one element past the end.  Fix the issues by using `<` instead of `<=`, ensuring we do not exceed the bounds.  [1] KASAN splat about rss_key_size off-by-one   BUG: KASAN: slab-out-of-bounds in iavf_config_rss+0x619/0x800   Read of size 4 at addr ffff888102c50134 by task kworker/u8:6/63    CPU: 0 UID: 0 PID: 63 Comm: kworker/u8:6 Not tainted 6.18.0-rc2-enjuk-tnguy-00378-g3005f5b77652-dirty #156 PREEMPT(voluntary)   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014   Workqueue: iavf iavf_watchdog_task   Call Trace:    <TASK>    dump_stack_lvl+0x6f/0xb0    print_report+0x170/0x4f3    kasan_report+0xe1/0x1a0    iavf_config_rss+0x619/0x800    iavf_watchdog_task+0x2be7/0x3230    process_one_work+0x7fd/0x1420    worker_thread+0x4d1/0xd40    kthread+0x344/0x660    ret_from_fork+0x249/0x320    ret_from_fork_asm+0x1a/0x30    </TASK>    Allocated by task 63:    kasan_save_stack+0x30/0x50    kasan_save_track+0x14/0x30    __kasan_kmalloc+0x7f/0x90    __kmalloc_noprof+0x246/0x6f0    iavf_watchdog_task+0x28fc/0x3230    process_one_work+0x7fd/0x1420    worker_thread+0x4d1/0xd40    kthread+0x344/0x660    ret_from_fork+0x249/0x320    ret_from_fork_asm+0x1a/0x30    The buggy address belongs to the object at ffff888102c50100    which belongs to the cache kmalloc-64 of size 64   The buggy address is located 0 bytes to the right of    allocated 52-byte region [ffff888102c50100, ffff888102c50134)    The buggy address belongs to the physical page:   page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x102c50   flags: 0x200000000000000(node=0|zone=2)   page_type: f5(slab)   raw: 0200000000000000 ffff8881000418c0 dead000000000122 0000000000000000   raw: 0000000000000000 0000000080200020 00000000f5000000 0000000000000000   page dumped because: kasan: bad access detected    Memory state around the buggy address:    ffff888102c50000: 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc fc    ffff888102c50080: 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc fc   >ffff888102c50100: 00 00 00 00 00 00 04 fc fc fc fc fc fc fc fc fc                                        ^    ffff888102c50180: 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc    ffff888102c50200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71111",
                                "url": "https://ubuntu.com/security/CVE-2025-71111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hwmon: (w83791d) Convert macros to functions to avoid TOCTOU  The macro FAN_FROM_REG evaluates its arguments multiple times. When used in lockless contexts involving shared driver data, this leads to Time-of-Check to Time-of-Use (TOCTOU) race conditions, potentially causing divide-by-zero errors.  Convert the macro to a static function. This guarantees that arguments are evaluated only once (pass-by-value), preventing the race conditions.  Additionally, in store_fan_div, move the calculation of the minimum limit inside the update lock. This ensures that the read-modify-write sequence operates on consistent data.  Adhere to the principle of minimal changes by only converting macros that evaluate arguments multiple times and are used in lockless contexts.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68814",
                                "url": "https://ubuntu.com/security/CVE-2025-68814",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  io_uring: fix filename leak in __io_openat_prep()   __io_openat_prep() allocates a struct filename using getname(). However, for the condition of the file being installed in the fixed file table as well as having O_CLOEXEC flag set, the function returns early. At that point, the request doesn't have REQ_F_NEED_CLEANUP flag set. Due to this, the memory for the newly allocated struct filename is not cleaned up, causing a memory leak.  Fix this by setting the REQ_F_NEED_CLEANUP for the request just after the successful getname() call, so that when the request is torn down, the filename will be cleaned up, along with other resources needing cleanup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68788",
                                "url": "https://ubuntu.com/security/CVE-2025-68788",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fsnotify: do not generate ACCESS/MODIFY events on child for special files  inotify/fanotify do not allow users with no read access to a file to subscribe to events (e.g. IN_ACCESS/IN_MODIFY), but they do allow the same user to subscribe for watching events on children when the user has access to the parent directory (e.g. /dev).  Users with no read access to a file but with read access to its parent directory can still stat the file and see if it was accessed/modified via atime/mtime change.  The same is not true for special files (e.g. /dev/null). Users will not generally observe atime/mtime changes when other users read/write to special files, only when someone sets atime/mtime via utimensat().  Align fsnotify events with this stat behavior and do not generate ACCESS/MODIFY events to parent watchers on read/write of special files. The events are still generated to parent watchers on utimensat(). This closes some side-channels that could be possibly used for information exfiltration [1].  [1] https://snee.la/pdf/pubs/file-notification-attacks.pdf",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71125",
                                "url": "https://ubuntu.com/security/CVE-2025-71125",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tracing: Do not register unsupported perf events  Synthetic events currently do not have a function to register perf events. This leads to calling the tracepoint register functions with a NULL function pointer which triggers:   ------------[ cut here ]------------  WARNING: kernel/tracepoint.c:175 at tracepoint_add_func+0x357/0x370, CPU#2: perf/2272  Modules linked in: kvm_intel kvm irqbypass  CPU: 2 UID: 0 PID: 2272 Comm: perf Not tainted 6.18.0-ftest-11964-ge022764176fc-dirty #323 PREEMPTLAZY  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014  RIP: 0010:tracepoint_add_func+0x357/0x370  Code: 28 9c e8 4c 0b f5 ff eb 0f 4c 89 f7 48 c7 c6 80 4d 28 9c e8 ab 89 f4 ff 31 c0 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc cc cc cc cc <0f> 0b 49 c7 c6 ea ff ff ff e9 ee fe ff ff 0f 0b e9 f9 fe ff ff 0f  RSP: 0018:ffffabc0c44d3c40 EFLAGS: 00010246  RAX: 0000000000000001 RBX: ffff9380aa9e4060 RCX: 0000000000000000  RDX: 000000000000000a RSI: ffffffff9e1d4a98 RDI: ffff937fcf5fd6c8  RBP: 0000000000000001 R08: 0000000000000007 R09: ffff937fcf5fc780  R10: 0000000000000003 R11: ffffffff9c193910 R12: 000000000000000a  R13: ffffffff9e1e5888 R14: 0000000000000000 R15: ffffabc0c44d3c78  FS:  00007f6202f5f340(0000) GS:ffff93819f00f000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 000055d3162281a8 CR3: 0000000106a56003 CR4: 0000000000172ef0  Call Trace:   <TASK>   tracepoint_probe_register+0x5d/0x90   synth_event_reg+0x3c/0x60   perf_trace_event_init+0x204/0x340   perf_trace_init+0x85/0xd0   perf_tp_event_init+0x2e/0x50   perf_try_init_event+0x6f/0x230   ? perf_event_alloc+0x4bb/0xdc0   perf_event_alloc+0x65a/0xdc0   __se_sys_perf_event_open+0x290/0x9f0   do_syscall_64+0x93/0x7b0   ? entry_SYSCALL_64_after_hwframe+0x76/0x7e   ? trace_hardirqs_off+0x53/0xc0   entry_SYSCALL_64_after_hwframe+0x76/0x7e  Instead, have the code return -ENODEV, which doesn't warn and has perf error out with:   # perf record -e synthetic:futex_wait Error: The sys_perf_event_open() syscall returned with 19 (No such device) for event (synthetic:futex_wait). \"dmesg | grep -i perf\" may provide additional information.  Ideally perf should support synthetic events, but for now just fix the warning. The support can come later.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71104",
                                "url": "https://ubuntu.com/security/CVE-2025-71104",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV timer  When advancing the target expiration for the guest's APIC timer in periodic mode, set the expiration to \"now\" if the target expiration is in the past (similar to what is done in update_target_expiration()).  Blindly adding the period to the previous target expiration can result in KVM generating a practically unbounded number of hrtimer IRQs due to programming an expired timer over and over.  In extreme scenarios, e.g. if userspace pauses/suspends a VM for an extended duration, this can even cause hard lockups in the host.  Currently, the bug only affects Intel CPUs when using the hypervisor timer (HV timer), a.k.a. the VMX preemption timer.  Unlike the software timer, a.k.a. hrtimer, which KVM keeps running even on exits to userspace, the HV timer only runs while the guest is active.  As a result, if the vCPU does not run for an extended duration, there will be a huge gap between the target expiration and the current time the vCPU resumes running. Because the target expiration is incremented by only one period on each timer expiration, this leads to a series of timer expirations occurring rapidly after the vCPU/VM resumes.  More critically, when the vCPU first triggers a periodic HV timer expiration after resuming, advancing the expiration by only one period will result in a target expiration in the past.  As a result, the delta may be calculated as a negative value.  When the delta is converted into an absolute value (tscdeadline is an unsigned u64), the resulting value can overflow what the HV timer is capable of programming.  I.e. the large value will exceed the VMX Preemption Timer's maximum bit width of cpu_preemption_timer_multi + 32, and thus cause KVM to switch from the HV timer to the software timer (hrtimers).  After switching to the software timer, periodic timer expiration callbacks may be executed consecutively within a single clock interrupt handler, because hrtimers honors KVM's request for an expiration in the past and immediately re-invokes KVM's callback after reprogramming.  And because the interrupt handler runs with IRQs disabled, restarting KVM's hrtimer over and over until the target expiration is advanced to \"now\" can result in a hard lockup.  E.g. the following hard lockup was triggered in the host when running a Windows VM (only relevant because it used the APIC timer in periodic mode) after resuming the VM from a long suspend (in the host).    NMI watchdog: Watchdog detected hard LOCKUP on cpu 45   ...   RIP: 0010:advance_periodic_target_expiration+0x4d/0x80 [kvm]   ...   RSP: 0018:ff4f88f5d98d8ef0 EFLAGS: 00000046   RAX: fff0103f91be678e RBX: fff0103f91be678e RCX: 00843a7d9e127bcc   RDX: 0000000000000002 RSI: 0052ca4003697505 RDI: ff440d5bfbdbd500   RBP: ff440d5956f99200 R08: ff2ff2a42deb6a84 R09: 000000000002a6c0   R10: 0122d794016332b3 R11: 0000000000000000 R12: ff440db1af39cfc0   R13: ff440db1af39cfc0 R14: ffffffffc0d4a560 R15: ff440db1af39d0f8   FS:  00007f04a6ffd700(0000) GS:ff440db1af380000(0000) knlGS:000000e38a3b8000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 000000d5651feff8 CR3: 000000684e038002 CR4: 0000000000773ee0   PKRU: 55555554   Call Trace:    <IRQ>    apic_timer_fn+0x31/0x50 [kvm]    __hrtimer_run_queues+0x100/0x280    hrtimer_interrupt+0x100/0x210    ? ttwu_do_wakeup+0x19/0x160    smp_apic_timer_interrupt+0x6a/0x130    apic_timer_interrupt+0xf/0x20    </IRQ>  Moreover, if the suspend duration of the virtual machine is not long enough to trigger a hard lockup in this scenario, since commit 98c25ead5eda (\"KVM: VMX: Move preemption timer <=> hrtimer dance to common x86\"), KVM will continue using the software timer until the guest reprograms the APIC timer in some way.  Since the periodic timer does not require frequent APIC timer register programming, the guest may continue to use the software timer in ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71116",
                                "url": "https://ubuntu.com/security/CVE-2025-71116",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make decode_pool() more resilient against corrupted osdmaps  If the osdmap is (maliciously) corrupted such that the encoded length of ceph_pg_pool envelope is less than what is expected for a particular encoding version, out-of-bounds reads may ensue because the only bounds check that is there is based on that length value.  This patch adds explicit bounds checks for each field that is decoded or skipped.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71121",
                                "url": "https://ubuntu.com/security/CVE-2025-71121",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  parisc: Do not reprogram affinitiy on ASP chip  The ASP chip is a very old variant of the GSP chip and is used e.g. in HP 730 workstations. When trying to reprogram the affinity it will crash with a HPMC as the relevant registers don't seem to be at the usual location.  Let's avoid the crash by checking the sversion. Also note, that reprogramming isn't necessary either, as the HP730 is a just a single-CPU machine.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71102",
                                "url": "https://ubuntu.com/security/CVE-2025-71102",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scs: fix a wrong parameter in __scs_magic  __scs_magic() needs a 'void *' variable, but a 'struct task_struct *' is given.  'task_scs(tsk)' is the starting address of the task's shadow call stack, and '__scs_magic(task_scs(tsk))' is the end address of the task's shadow call stack.  Here should be '__scs_magic(task_scs(tsk))'.  The user-visible effect of this bug is that when CONFIG_DEBUG_STACK_USAGE is enabled, the shadow call stack usage checking function (scs_check_usage) would scan an incorrect memory range.  This could lead  1. **Inaccurate stack usage reporting**: The function would calculate    wrong usage statistics for the shadow call stack, potentially showing    incorrect value in kmsg.  2. **Potential kernel crash**: If the value of __scs_magic(tsk)is    greater than that of __scs_magic(task_scs(tsk)), the for loop may    access unmapped memory, potentially causing a kernel panic.  However,    this scenario is unlikely because task_struct is allocated via the slab    allocator (which typically returns lower addresses), while the shadow    call stack returned by task_scs(tsk) is allocated via vmalloc(which    typically returns higher addresses).  However, since this is purely a debugging feature (CONFIG_DEBUG_STACK_USAGE), normal production systems should be not unaffected.  The bug only impacts developers and testers who are actively debugging stack usage with this configuration enabled.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68804",
                                "url": "https://ubuntu.com/security/CVE-2025-68804",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/chrome: cros_ec_ishtp: Fix UAF after unbinding driver  After unbinding the driver, another kthread `cros_ec_console_log_work` is still accessing the device, resulting an UAF and crash.  The driver doesn't unregister the EC device in .remove() which should shutdown sub-devices synchronously.  Fix it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68771",
                                "url": "https://ubuntu.com/security/CVE-2025-68771",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ocfs2: fix kernel BUG in ocfs2_find_victim_chain  syzbot reported a kernel BUG in ocfs2_find_victim_chain() because the `cl_next_free_rec` field of the allocation chain list (next free slot in the chain list) is 0, triggring the BUG_ON(!cl->cl_next_free_rec) condition in ocfs2_find_victim_chain() and panicking the kernel.  To fix this, an if condition is introduced in ocfs2_claim_suballoc_bits(), just before calling ocfs2_find_victim_chain(), the code block in it being executed when either of the following conditions is true:  1. `cl_next_free_rec` is equal to 0, indicating that there are no free chains in the allocation chain list 2. `cl_next_free_rec` is greater than `cl_count` (the total number of chains in the allocation chain list)  Either of them being true is indicative of the fact that there are no chains left for usage.  This is addressed using ocfs2_error(), which prints the error log for debugging purposes, rather than panicking the kernel.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68808",
                                "url": "https://ubuntu.com/security/CVE-2025-68808",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: vidtv: initialize local pointers upon transfer of memory ownership  vidtv_channel_si_init() creates a temporary list (program, service, event) and ownership of the memory itself is transferred to the PAT/SDT/EIT tables through vidtv_psi_pat_program_assign(), vidtv_psi_sdt_service_assign(), vidtv_psi_eit_event_assign().  The problem here is that the local pointer where the memory ownership transfer was completed is not initialized to NULL. This causes the vidtv_psi_pmt_create_sec_for_each_pat_entry() function to fail, and in the flow that jumps to free_eit, the memory that was freed by vidtv_psi_*_table_destroy() can be accessed again by vidtv_psi_*_event_destroy() due to the uninitialized local pointer, so it is freed once again.  Therefore, to prevent use-after-free and double-free vulnerability, local pointers must be initialized to NULL when transferring memory ownership.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68769",
                                "url": "https://ubuntu.com/security/CVE-2025-68769",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix return value of f2fs_recover_fsync_data()  With below scripts, it will trigger panic in f2fs:  mkfs.f2fs -f /dev/vdd mount /dev/vdd /mnt/f2fs touch /mnt/f2fs/foo sync echo 111 >> /mnt/f2fs/foo f2fs_io fsync /mnt/f2fs/foo f2fs_io shutdown 2 /mnt/f2fs umount /mnt/f2fs mount -o ro,norecovery /dev/vdd /mnt/f2fs or mount -o ro,disable_roll_forward /dev/vdd /mnt/f2fs  F2FS-fs (vdd): f2fs_recover_fsync_data: recovery fsync data, check_only: 0 F2FS-fs (vdd): Mounted with checkpoint version = 7f5c361f F2FS-fs (vdd): Stopped filesystem due to reason: 0 F2FS-fs (vdd): f2fs_recover_fsync_data: recovery fsync data, check_only: 1 Filesystem f2fs get_tree() didn't set fc->root, returned 1 ------------[ cut here ]------------ kernel BUG at fs/super.c:1761! Oops: invalid opcode: 0000 [#1] SMP PTI CPU: 3 UID: 0 PID: 722 Comm: mount Not tainted 6.18.0-rc2+ #721 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:vfs_get_tree.cold+0x18/0x1a Call Trace:  <TASK>  fc_mount+0x13/0xa0  path_mount+0x34e/0xc50  __x64_sys_mount+0x121/0x150  do_syscall_64+0x84/0x800  entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fa6cc126cfe  The root cause is we missed to handle error number returned from f2fs_recover_fsync_data() when mounting image w/ ro,norecovery or ro,disable_roll_forward mount option, result in returning a positive error number to vfs_get_tree(), fix it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71069",
                                "url": "https://ubuntu.com/security/CVE-2025-71069",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: invalidate dentry cache on failed whiteout creation  F2FS can mount filesystems with corrupted directory depth values that get runtime-clamped to MAX_DIR_HASH_DEPTH. When RENAME_WHITEOUT operations are performed on such directories, f2fs_rename performs directory modifications (updating target entry and deleting source entry) before attempting to add the whiteout entry via f2fs_add_link.  If f2fs_add_link fails due to the corrupted directory structure, the function returns an error to VFS, but the partial directory modifications have already been committed to disk. VFS assumes the entire rename operation failed and does not update the dentry cache, leaving stale mappings.  In the error path, VFS does not call d_move() to update the dentry cache. This results in new_dentry still pointing to the old inode (new_inode) which has already had its i_nlink decremented to zero. The stale cache causes subsequent operations to incorrectly reference the freed inode.  This causes subsequent operations to use cached dentry information that no longer matches the on-disk state. When a second rename targets the same entry, VFS attempts to decrement i_nlink on the stale inode, which may already have i_nlink=0, triggering a WARNING in drop_nlink().  Example sequence: 1. First rename (RENAME_WHITEOUT): file2 → file1    - f2fs updates file1 entry on disk (points to inode 8)    - f2fs deletes file2 entry on disk    - f2fs_add_link(whiteout) fails (corrupted directory)    - Returns error to VFS    - VFS does not call d_move() due to error    - VFS cache still has: file1 → inode 7 (stale!)    - inode 7 has i_nlink=0 (already decremented)  2. Second rename: file3 → file1    - VFS uses stale cache: file1 → inode 7    - Tries to drop_nlink on inode 7 (i_nlink already 0)    - WARNING in drop_nlink()  Fix this by explicitly invalidating old_dentry and new_dentry when f2fs_add_link fails during whiteout creation. This forces VFS to refresh from disk on subsequent operations, ensuring cache consistency even when the rename partially succeeds.  Reproducer: 1. Mount F2FS image with corrupted i_current_depth 2. renameat2(file2, file1, RENAME_WHITEOUT) 3. renameat2(file3, file1, 0) 4. System triggers WARNING in drop_nlink()",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68782",
                                "url": "https://ubuntu.com/security/CVE-2025-68782",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: Reset t_task_cdb pointer in error case  If allocation of cmd->t_task_cdb fails, it remains NULL but is later dereferenced in the 'err' path.  In case of error, reset NULL t_task_cdb value to point at the default fixed-size buffer.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71075",
                                "url": "https://ubuntu.com/security/CVE-2025-71075",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: aic94xx: fix use-after-free in device removal path  The asd_pci_remove() function fails to synchronize with pending tasklets before freeing the asd_ha structure, leading to a potential use-after-free vulnerability.  When a device removal is triggered (via hot-unplug or module unload), race condition can occur.  The fix adds tasklet_kill() before freeing the asd_ha structure, ensuring all scheduled tasklets complete before cleanup proceeds.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68818",
                                "url": "https://ubuntu.com/security/CVE-2025-68818",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: Revert \"scsi: qla2xxx: Perform lockless command completion in abort path\"  This reverts commit 0367076b0817d5c75dfb83001ce7ce5c64d803a9.  The commit being reverted added code to __qla2x00_abort_all_cmds() to call sp->done() without holding a spinlock.  But unlike the older code below it, this new code failed to check sp->cmd_type and just assumed TYPE_SRB, which results in a jump to an invalid pointer in target-mode with TYPE_TGT_CMD:  qla2xxx [0000:65:00.0]-d034:8: qla24xx_do_nack_work create sess success   0000000009f7a79b qla2xxx [0000:65:00.0]-5003:8: ISP System Error - mbx1=1ff5h mbx2=10h   mbx3=0h mbx4=0h mbx5=191h mbx6=0h mbx7=0h. qla2xxx [0000:65:00.0]-d01e:8: -> fwdump no buffer qla2xxx [0000:65:00.0]-f03a:8: qla_target(0): System error async event   0x8002 occurred qla2xxx [0000:65:00.0]-00af:8: Performing ISP error recovery -   ha=0000000058183fda. BUG: kernel NULL pointer dereference, address: 0000000000000000 PF: supervisor instruction fetch in kernel mode PF: error_code(0x0010) - not-present page PGD 0 P4D 0 Oops: 0010 [#1] SMP CPU: 2 PID: 9446 Comm: qla2xxx_8_dpc Tainted: G           O       6.1.133 #1 Hardware name: Supermicro Super Server/X11SPL-F, BIOS 4.2 12/15/2023 RIP: 0010:0x0 Code: Unable to access opcode bytes at 0xffffffffffffffd6. RSP: 0018:ffffc90001f93dc8 EFLAGS: 00010206 RAX: 0000000000000282 RBX: 0000000000000355 RCX: ffff88810d16a000 RDX: ffff88810dbadaa8 RSI: 0000000000080000 RDI: ffff888169dc38c0 RBP: ffff888169dc38c0 R08: 0000000000000001 R09: 0000000000000045 R10: ffffffffa034bdf0 R11: 0000000000000000 R12: ffff88810800bb40 R13: 0000000000001aa8 R14: ffff888100136610 R15: ffff8881070f7400 FS:  0000000000000000(0000) GS:ffff88bf80080000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffffffffd6 CR3: 000000010c8ff006 CR4: 00000000003706e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace:  <TASK>  ? __die+0x4d/0x8b  ? page_fault_oops+0x91/0x180  ? trace_buffer_unlock_commit_regs+0x38/0x1a0  ? exc_page_fault+0x391/0x5e0  ? asm_exc_page_fault+0x22/0x30  __qla2x00_abort_all_cmds+0xcb/0x3e0 [qla2xxx_scst]  qla2x00_abort_all_cmds+0x50/0x70 [qla2xxx_scst]  qla2x00_abort_isp_cleanup+0x3b7/0x4b0 [qla2xxx_scst]  qla2x00_abort_isp+0xfd/0x860 [qla2xxx_scst]  qla2x00_do_dpc+0x581/0xa40 [qla2xxx_scst]  kthread+0xa8/0xd0  </TASK>  Then commit 4475afa2646d (\"scsi: qla2xxx: Complete command early within lock\") added the spinlock back, because not having the lock caused a race and a crash.  But qla2x00_abort_srb() in the switch below already checks for qla2x00_chip_is_down() and handles it the same way, so the code above the switch is now redundant and still buggy in target-mode. Remove it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68797",
                                "url": "https://ubuntu.com/security/CVE-2025-68797",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  char: applicom: fix NULL pointer dereference in ac_ioctl  Discovered by Atuin - Automated Vulnerability Discovery Engine.  In ac_ioctl, the validation of IndexCard and the check for a valid RamIO pointer are skipped when cmd is 6. However, the function unconditionally executes readb(apbs[IndexCard].RamIO + VERS) at the end.  If cmd is 6, IndexCard may reference a board that does not exist (where RamIO is NULL), leading to a NULL pointer dereference.  Fix this by skipping the readb access when cmd is 6, as this command is a global information query and does not target a specific board context.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68819",
                                "url": "https://ubuntu.com/security/CVE-2025-68819",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()  rlen value is a user-controlled value, but dtv5100_i2c_msg() does not check the size of the rlen value. Therefore, if it is set to a value larger than sizeof(st->data), an out-of-bounds vuln occurs for st->data.  Therefore, we need to add proper range checking to prevent this vuln.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68820",
                                "url": "https://ubuntu.com/security/CVE-2025-68820",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: xattr: fix null pointer deref in ext4_raw_inode()  If ext4_get_inode_loc() fails (e.g. if it returns -EFSCORRUPTED), iloc.bh will remain set to NULL. Since ext4_xattr_inode_dec_ref_all() lacks error checking, this will lead to a null pointer dereference in ext4_raw_inode(), called right after ext4_get_inode_loc().  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71147",
                                "url": "https://ubuntu.com/security/CVE-2025-71147",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KEYS: trusted: Fix a memory leak in tpm2_load_cmd  'tpm2_load_cmd' allocates a tempoary blob indirectly via 'tpm2_key_decode' but it is not freed in the failure paths. Address this by wrapping the blob into with a cleanup helper.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71108",
                                "url": "https://ubuntu.com/security/CVE-2025-71108",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: typec: ucsi: Handle incorrect num_connectors capability  The UCSI spec states that the num_connectors field is 7 bits, and the 8th bit is reserved and should be set to zero. Some buggy FW has been known to set this bit, and it can lead to a system not booting. Flag that the FW is not behaving correctly, and auto-fix the value so that the system boots correctly.  Found on Lenovo P1 G8 during Linux enablement program. The FW will be fixed, but seemed worth addressing in case it hit platforms that aren't officially Linux supported.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71114",
                                "url": "https://ubuntu.com/security/CVE-2025-71114",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  via_wdt: fix critical boot hang due to unnamed resource allocation  The VIA watchdog driver uses allocate_resource() to reserve a MMIO region for the watchdog control register. However, the allocated resource was not given a name, which causes the kernel resource tree to contain an entry marked as \"<BAD>\" under /proc/iomem on x86 platforms.  During boot, this unnamed resource can lead to a critical hang because subsequent resource lookups and conflict checks fail to handle the invalid entry properly.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68783",
                                "url": "https://ubuntu.com/security/CVE-2025-68783",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-mixer: us16x08: validate meter packet indices  get_meter_levels_from_urb() parses the 64-byte meter packets sent by the device and fills the per-channel arrays meter_level[], comp_level[] and master_level[] in struct snd_us16x08_meter_store.  Currently the function derives the channel index directly from the meter packet (MUB2(meter_urb, s) - 1) and uses it to index those arrays without validating the range. If the packet contains a negative or out-of-range channel number, the driver may write past the end of these arrays.  Introduce a local channel variable and validate it before updating the arrays. We reject negative indices, limit meter_level[] and comp_level[] to SND_US16X08_MAX_CHANNELS, and guard master_level[] updates with ARRAY_SIZE(master_level).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68776",
                                "url": "https://ubuntu.com/security/CVE-2025-68776",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/hsr: fix NULL pointer dereference in prp_get_untagged_frame()  prp_get_untagged_frame() calls __pskb_copy() to create frame->skb_std but doesn't check if the allocation failed. If __pskb_copy() returns NULL, skb_clone() is called with a NULL pointer, causing a crash:  Oops: general protection fault, probably for non-canonical address 0xdffffc000000000f: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000078-0x000000000000007f] CPU: 0 UID: 0 PID: 5625 Comm: syz.1.18 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:skb_clone+0xd7/0x3a0 net/core/skbuff.c:2041 Code: 03 42 80 3c 20 00 74 08 4c 89 f7 e8 23 29 05 f9 49 83 3e 00 0f 85 a0 01 00 00 e8 94 dd 9d f8 48 8d 6b 7e 49 89 ee 49 c1 ee 03 <43> 0f b6 04 26 84 c0 0f 85 d1 01 00 00 44 0f b6 7d 00 41 83 e7 0c RSP: 0018:ffffc9000d00f200 EFLAGS: 00010207 RAX: ffffffff892235a1 RBX: 0000000000000000 RCX: ffff88803372a480 RDX: 0000000000000000 RSI: 0000000000000820 RDI: 0000000000000000 RBP: 000000000000007e R08: ffffffff8f7d0f77 R09: 1ffffffff1efa1ee R10: dffffc0000000000 R11: fffffbfff1efa1ef R12: dffffc0000000000 R13: 0000000000000820 R14: 000000000000000f R15: ffff88805144cc00 FS:  0000555557f6d500(0000) GS:ffff88808d72f000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000555581d35808 CR3: 000000005040e000 CR4: 0000000000352ef0 Call Trace:  <TASK>  hsr_forward_do net/hsr/hsr_forward.c:-1 [inline]  hsr_forward_skb+0x1013/0x2860 net/hsr/hsr_forward.c:741  hsr_handle_frame+0x6ce/0xa70 net/hsr/hsr_slave.c:84  __netif_receive_skb_core+0x10b9/0x4380 net/core/dev.c:5966  __netif_receive_skb_one_core net/core/dev.c:6077 [inline]  __netif_receive_skb+0x72/0x380 net/core/dev.c:6192  netif_receive_skb_internal net/core/dev.c:6278 [inline]  netif_receive_skb+0x1cb/0x790 net/core/dev.c:6337  tun_rx_batched+0x1b9/0x730 drivers/net/tun.c:1485  tun_get_user+0x2b65/0x3e90 drivers/net/tun.c:1953  tun_chr_write_iter+0x113/0x200 drivers/net/tun.c:1999  new_sync_write fs/read_write.c:593 [inline]  vfs_write+0x5c9/0xb30 fs/read_write.c:686  ksys_write+0x145/0x250 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f0449f8e1ff Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 f9 92 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 4c 93 02 00 48 RSP: 002b:00007ffd7ad94c90 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007f044a1e5fa0 RCX: 00007f0449f8e1ff RDX: 000000000000003e RSI: 0000200000000500 RDI: 00000000000000c8 RBP: 00007ffd7ad94d20 R08: 0000000000000000 R09: 0000000000000000 R10: 000000000000003e R11: 0000000000000293 R12: 0000000000000001 R13: 00007f044a1e5fa0 R14: 00007f044a1e5fa0 R15: 0000000000000003  </TASK>  Add a NULL check immediately after __pskb_copy() to handle allocation failures gracefully.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68777",
                                "url": "https://ubuntu.com/security/CVE-2025-68777",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: ti_am335x_tsc - fix off-by-one error in wire_order validation  The current validation 'wire_order[i] > ARRAY_SIZE(config_pins)' allows wire_order[i] to equal ARRAY_SIZE(config_pins), which causes out-of-bounds access when used as index in 'config_pins[wire_order[i]]'.  Since config_pins has 4 elements (indices 0-3), the valid range for wire_order should be 0-3. Fix the off-by-one error by using >= instead of > in the validation check.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71112",
                                "url": "https://ubuntu.com/security/CVE-2025-71112",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hns3: add VLAN id validation before using  Currently, the VLAN id may be used without validation when receive a VLAN configuration mailbox from VF. The length of vlan_del_fail_bmap is BITS_TO_LONGS(VLAN_N_VID). It may cause out-of-bounds memory access once the VLAN id is bigger than or equal to VLAN_N_VID.  Therefore, VLAN id needs to be checked to ensure it is within the range of VLAN_N_VID.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71064",
                                "url": "https://ubuntu.com/security/CVE-2025-71064",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hns3: using the num_tqps in the vf driver to apply for resources  Currently, hdev->htqp is allocated using hdev->num_tqps, and kinfo->tqp is allocated using kinfo->num_tqps. However, kinfo->num_tqps is set to min(new_tqps, hdev->num_tqps);  Therefore, kinfo->num_tqps may be smaller than hdev->num_tqps, which causes some hdev->htqp[i] to remain uninitialized in hclgevf_knic_setup().  Thus, this patch allocates hdev->htqp and kinfo->tqp using hdev->num_tqps, ensuring that the lengths of hdev->htqp and kinfo->tqp are consistent and that all elements are properly initialized.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68816",
                                "url": "https://ubuntu.com/security/CVE-2025-68816",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5: fw_tracer, Validate format string parameters  Add validation for format string parameters in the firmware tracer to prevent potential security vulnerabilities and crashes from malformed format strings received from firmware.  The firmware tracer receives format strings from the device firmware and uses them to format trace messages. Without proper validation, bad firmware could provide format strings with invalid format specifiers (e.g., %s, %p, %n) that could lead to crashes, or other undefined behavior.  Add mlx5_tracer_validate_params() to validate that all format specifiers in trace strings are limited to safe integer/hex formats (%x, %d, %i, %u, %llx, %lx, etc.). Reject strings containing other format types that could be used to access arbitrary memory or cause crashes. Invalid format strings are added to the trace output for visibility with \"BAD_FORMAT: \" prefix.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68795",
                                "url": "https://ubuntu.com/security/CVE-2025-68795",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ethtool: Avoid overflowing userspace buffer on stats query  The ethtool -S command operates across three ioctl calls: ETHTOOL_GSSET_INFO for the size, ETHTOOL_GSTRINGS for the names, and ETHTOOL_GSTATS for the values.  If the number of stats changes between these calls (e.g., due to device reconfiguration), userspace's buffer allocation will be incorrect, potentially leading to buffer overflow.  Drivers are generally expected to maintain stable stat counts, but some drivers (e.g., mlx5, bnx2x, bna, ksz884x) use dynamic counters, making this scenario possible.  Some drivers try to handle this internally: - bnad_get_ethtool_stats() returns early in case stats.n_stats is not   equal to the driver's stats count. - micrel/ksz884x also makes sure not to write anything beyond   stats.n_stats and overflow the buffer.  However, both use stats.n_stats which is already assigned with the value returned from get_sset_count(), hence won't solve the issue described here.  Change ethtool_get_strings(), ethtool_get_stats(), ethtool_get_phy_stats() to not return anything in case of a mismatch between userspace's size and get_sset_size(), to prevent buffer overflow. The returned n_stats value will be equal to zero, to reflect that nothing has been returned.  This could result in one of two cases when using upstream ethtool, depending on when the size change is detected: 1. When detected in ethtool_get_strings():     # ethtool -S eth2     no stats available  2. When detected in get stats, all stats will be reported as zero.  Both cases are presumably transient, and a subsequent ethtool call should succeed.  Other than the overflow avoidance, these two cases are very evident (no output/cleared stats), which is arguably better than presenting incorrect/shifted stats. I also considered returning an error instead of a \"silent\" response, but that seems more destructive towards userspace apps.  Notes: - This patch does not claim to fix the inherent race, it only makes sure   that we do not overflow the userspace buffer, and makes for a more   predictable behavior.  - RTNL lock is held during each ioctl, the race window exists between   the separate ioctl calls when the lock is released.  - Userspace ethtool always fills stats.n_stats, but it is likely that   these stats ioctls are implemented in other userspace applications   which might not fill it. The added code checks that it's not zero,   to prevent any regressions.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68815",
                                "url": "https://ubuntu.com/security/CVE-2025-68815",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: ets: Remove drr class from the active list if it changes to strict  Whenever a user issues an ets qdisc change command, transforming a drr class into a strict one, the ets code isn't checking whether that class was in the active list and removing it. This means that, if a user changes a strict class (which was in the active list) back to a drr one, that class will be added twice to the active list [1].  Doing so with the following commands:  tc qdisc add dev lo root handle 1: ets bands 2 strict 1 tc qdisc add dev lo parent 1:2 handle 20: \\     tbf rate 8bit burst 100b latency 1s tc filter add dev lo parent 1: basic classid 1:2 ping -c1 -W0.01 -s 56 127.0.0.1 tc qdisc change dev lo root handle 1: ets bands 2 strict 2 tc qdisc change dev lo root handle 1: ets bands 2 strict 1 ping -c1 -W0.01 -s 56 127.0.0.1  Will trigger the following splat with list debug turned on:  [   59.279014][  T365] ------------[ cut here ]------------ [   59.279452][  T365] list_add double add: new=ffff88801d60e350, prev=ffff88801d60e350, next=ffff88801d60e2c0. [   59.280153][  T365] WARNING: CPU: 3 PID: 365 at lib/list_debug.c:35 __list_add_valid_or_report+0x17f/0x220 [   59.280860][  T365] Modules linked in: [   59.281165][  T365] CPU: 3 UID: 0 PID: 365 Comm: tc Not tainted 6.18.0-rc7-00105-g7e9f13163c13-dirty #239 PREEMPT(voluntary) [   59.281977][  T365] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [   59.282391][  T365] RIP: 0010:__list_add_valid_or_report+0x17f/0x220 [   59.282842][  T365] Code: 89 c6 e8 d4 b7 0d ff 90 0f 0b 90 90 31 c0 e9 31 ff ff ff 90 48 c7 c7 e0 a0 22 9f 48 89 f2 48 89 c1 4c 89 c6 e8 b2 b7 0d ff 90 <0f> 0b 90 90 31 c0 e9 0f ff ff ff 48 89 f7 48 89 44 24 10 4c 89 44 ... [   59.288812][  T365] Call Trace: [   59.289056][  T365]  <TASK> [   59.289224][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.289546][  T365]  ets_qdisc_change+0xd2b/0x1e80 [   59.289891][  T365]  ? __lock_acquire+0x7e7/0x1be0 [   59.290223][  T365]  ? __pfx_ets_qdisc_change+0x10/0x10 [   59.290546][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.290898][  T365]  ? __mutex_trylock_common+0xda/0x240 [   59.291228][  T365]  ? __pfx___mutex_trylock_common+0x10/0x10 [   59.291655][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.291993][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.292313][  T365]  ? trace_contention_end+0xc8/0x110 [   59.292656][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.293022][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.293351][  T365]  tc_modify_qdisc+0x63a/0x1cf0  Fix this by always checking and removing an ets class from the active list when changing it to strict.  [1] https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/net/sched/sch_ets.c?id=ce052b9402e461a9aded599f5b47e76bc727f7de#n663",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68799",
                                "url": "https://ubuntu.com/security/CVE-2025-68799",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  caif: fix integer underflow in cffrml_receive()  The cffrml_receive() function extracts a length field from the packet header and, when FCS is disabled, subtracts 2 from this length without validating that len >= 2.  If an attacker sends a malicious packet with a length field of 0 or 1 to an interface with FCS disabled, the subtraction causes an integer underflow.  This can lead to memory exhaustion and kernel instability, potential information disclosure if padding contains uninitialized kernel memory.  Fix this by validating that len >= 2 before performing the subtraction.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68813",
                                "url": "https://ubuntu.com/security/CVE-2025-68813",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: fix ipv4 null-ptr-deref in route error path  The IPv4 code path in __ip_vs_get_out_rt() calls dst_link_failure() without ensuring skb->dev is set, leading to a NULL pointer dereference in fib_compute_spec_dst() when ipv4_link_failure() attempts to send ICMP destination unreachable messages.  The issue emerged after commit ed0de45a1008 (\"ipv4: recompile ip options in ipv4_link_failure\") started calling __ip_options_compile() from ipv4_link_failure(). This code path eventually calls fib_compute_spec_dst() which dereferences skb->dev. An attempt was made to fix the NULL skb->dev dereference in commit 0113d9c9d1cc (\"ipv4: fix null-deref in ipv4_link_failure\"), but it only addressed the immediate dev_net(skb->dev) dereference by using a fallback device. The fix was incomplete because fib_compute_spec_dst() later in the call chain still accesses skb->dev directly, which remains NULL when IPVS calls dst_link_failure().  The crash occurs when: 1. IPVS processes a packet in NAT mode with a misconfigured destination 2. Route lookup fails in __ip_vs_get_out_rt() before establishing a route 3. The error path calls dst_link_failure(skb) with skb->dev == NULL 4. ipv4_link_failure() → ipv4_send_dest_unreach() →    __ip_options_compile() → fib_compute_spec_dst() 5. fib_compute_spec_dst() dereferences NULL skb->dev  Apply the same fix used for IPv6 in commit 326bf17ea5d4 (\"ipvs: fix ipv6 route unreach panic\"): set skb->dev from skb_dst(skb)->dev before calling dst_link_failure().  KASAN: null-ptr-deref in range [0x0000000000000328-0x000000000000032f] CPU: 1 PID: 12732 Comm: syz.1.3469 Not tainted 6.6.114 #2 RIP: 0010:__in_dev_get_rcu include/linux/inetdevice.h:233 RIP: 0010:fib_compute_spec_dst+0x17a/0x9f0 net/ipv4/fib_frontend.c:285 Call Trace:   <TASK>   spec_dst_fill net/ipv4/ip_options.c:232   spec_dst_fill net/ipv4/ip_options.c:229   __ip_options_compile+0x13a1/0x17d0 net/ipv4/ip_options.c:330   ipv4_send_dest_unreach net/ipv4/route.c:1252   ipv4_link_failure+0x702/0xb80 net/ipv4/route.c:1265   dst_link_failure include/net/dst.h:437   __ip_vs_get_out_rt+0x15fd/0x19e0 net/netfilter/ipvs/ip_vs_xmit.c:412   ip_vs_nat_xmit+0x1d8/0xc80 net/netfilter/ipvs/ip_vs_xmit.c:764",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68785",
                                "url": "https://ubuntu.com/security/CVE-2025-68785",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: openvswitch: fix middle attribute validation in push_nsh() action  The push_nsh() action structure looks like this:   OVS_ACTION_ATTR_PUSH_NSH(OVS_KEY_ATTR_NSH(OVS_NSH_KEY_ATTR_BASE,...))  The outermost OVS_ACTION_ATTR_PUSH_NSH attribute is OK'ed by the nla_for_each_nested() inside __ovs_nla_copy_actions().  The innermost OVS_NSH_KEY_ATTR_BASE/MD1/MD2 are OK'ed by the nla_for_each_nested() inside nsh_key_put_from_nlattr().  But nothing checks if the attribute in the middle is OK.  We don't even check that this attribute is the OVS_KEY_ATTR_NSH.  We just do a double unwrap with a pair of nla_data() calls - first time directly while calling validate_push_nsh() and the second time as part of the nla_for_each_nested() macro, which isn't safe, potentially causing invalid memory access if the size of this attribute is incorrect.  The failure may not be noticed during validation due to larger netlink buffer, but cause trouble later during action execution where the buffer is allocated exactly to the size:   BUG: KASAN: slab-out-of-bounds in nsh_hdr_from_nlattr+0x1dd/0x6a0 [openvswitch]  Read of size 184 at addr ffff88816459a634 by task a.out/22624   CPU: 8 UID: 0 PID: 22624 6.18.0-rc7+ #115 PREEMPT(voluntary)  Call Trace:   <TASK>   dump_stack_lvl+0x51/0x70   print_address_description.constprop.0+0x2c/0x390   kasan_report+0xdd/0x110   kasan_check_range+0x35/0x1b0   __asan_memcpy+0x20/0x60   nsh_hdr_from_nlattr+0x1dd/0x6a0 [openvswitch]   push_nsh+0x82/0x120 [openvswitch]   do_execute_actions+0x1405/0x2840 [openvswitch]   ovs_execute_actions+0xd5/0x3b0 [openvswitch]   ovs_packet_cmd_execute+0x949/0xdb0 [openvswitch]   genl_family_rcv_msg_doit+0x1d6/0x2b0   genl_family_rcv_msg+0x336/0x580   genl_rcv_msg+0x9f/0x130   netlink_rcv_skb+0x11f/0x370   genl_rcv+0x24/0x40   netlink_unicast+0x73e/0xaa0   netlink_sendmsg+0x744/0xbf0   __sys_sendto+0x3d6/0x450   do_syscall_64+0x79/0x2c0   entry_SYSCALL_64_after_hwframe+0x76/0x7e   </TASK>  Let's add some checks that the attribute is properly sized and it's the only one attribute inside the action.  Technically, there is no real reason for OVS_KEY_ATTR_NSH to be there, as we know that we're pushing an NSH header already, it just creates extra nesting, but that's how uAPI works today.  So, keeping as it is.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68800",
                                "url": "https://ubuntu.com/security/CVE-2025-68800",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mlxsw: spectrum_mr: Fix use-after-free when updating multicast route stats  Cited commit added a dedicated mutex (instead of RTNL) to protect the multicast route list, so that it will not change while the driver periodically traverses it in order to update the kernel about multicast route stats that were queried from the device.  One instance of list entry deletion (during route replace) was missed and it can result in a use-after-free [1].  Fix by acquiring the mutex before deleting the entry from the list and releasing it afterwards.  [1] BUG: KASAN: slab-use-after-free in mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum] Read of size 8 at addr ffff8881523c2fa8 by task kworker/2:5/22043  CPU: 2 UID: 0 PID: 22043 Comm: kworker/2:5 Not tainted 6.18.0-rc1-custom-g1a3d6d7cd014 #1 PREEMPT(full) Hardware name: Mellanox Technologies Ltd. MSN2010/SA002610, BIOS 5.6.5 08/24/2017 Workqueue: mlxsw_core mlxsw_sp_mr_stats_update [mlxsw_spectrum] Call Trace:  <TASK>  dump_stack_lvl+0xba/0x110  print_report+0x174/0x4f5  kasan_report+0xdf/0x110  mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30  </TASK>  Allocated by task 29933:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0x8f/0xa0  mlxsw_sp_mr_route_add+0xd8/0x4770 [mlxsw_spectrum]  mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30  Freed by task 29933:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_save_free_info+0x3b/0x70  __kasan_slab_free+0x43/0x70  kfree+0x14e/0x700  mlxsw_sp_mr_route_add+0x2dea/0x4770 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:444 [mlxsw_spectrum]  mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68801",
                                "url": "https://ubuntu.com/security/CVE-2025-68801",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mlxsw: spectrum_router: Fix neighbour use-after-free  We sometimes observe use-after-free when dereferencing a neighbour [1]. The problem seems to be that the driver stores a pointer to the neighbour, but without holding a reference on it. A reference is only taken when the neighbour is used by a nexthop.  Fix by simplifying the reference counting scheme. Always take a reference when storing a neighbour pointer in a neighbour entry. Avoid taking a referencing when the neighbour is used by a nexthop as the neighbour entry associated with the nexthop already holds a reference.  Tested by running the test that uncovered the problem over 300 times. Without this patch the problem was reproduced after a handful of iterations.  [1] BUG: KASAN: slab-use-after-free in mlxsw_sp_neigh_entry_update+0x2d4/0x310 Read of size 8 at addr ffff88817f8e3420 by task ip/3929  CPU: 3 UID: 0 PID: 3929 Comm: ip Not tainted 6.18.0-rc4-virtme-g36b21a067510 #3 PREEMPT(full) Hardware name: Nvidia SN5600/VMOD0013, BIOS 5.13 05/31/2023 Call Trace:  <TASK>  dump_stack_lvl+0x6f/0xa0  print_address_description.constprop.0+0x6e/0x300  print_report+0xfc/0x1fb  kasan_report+0xe4/0x110  mlxsw_sp_neigh_entry_update+0x2d4/0x310  mlxsw_sp_router_rif_gone_sync+0x35f/0x510  mlxsw_sp_rif_destroy+0x1ea/0x730  mlxsw_sp_inetaddr_port_vlan_event+0xa1/0x1b0  __mlxsw_sp_inetaddr_lag_event+0xcc/0x130  __mlxsw_sp_inetaddr_event+0xf5/0x3c0  mlxsw_sp_router_netdevice_event+0x1015/0x1580  notifier_call_chain+0xcc/0x150  call_netdevice_notifiers_info+0x7e/0x100  __netdev_upper_dev_unlink+0x10b/0x210  netdev_upper_dev_unlink+0x79/0xa0  vrf_del_slave+0x18/0x50  do_set_master+0x146/0x7d0  do_setlink.isra.0+0x9a0/0x2880  rtnl_newlink+0x637/0xb20  rtnetlink_rcv_msg+0x6fe/0xb90  netlink_rcv_skb+0x123/0x380  netlink_unicast+0x4a3/0x770  netlink_sendmsg+0x75b/0xc90  __sock_sendmsg+0xbe/0x160  ____sys_sendmsg+0x5b2/0x7d0  ___sys_sendmsg+0xfd/0x180  __sys_sendmsg+0x124/0x1c0  do_syscall_64+0xbb/0xfd0  entry_SYSCALL_64_after_hwframe+0x4b/0x53 [...]  Allocated by task 109:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0x7b/0x90  __kmalloc_noprof+0x2c1/0x790  neigh_alloc+0x6af/0x8f0  ___neigh_create+0x63/0xe90  mlxsw_sp_nexthop_neigh_init+0x430/0x7e0  mlxsw_sp_nexthop_type_init+0x212/0x960  mlxsw_sp_nexthop6_group_info_init.constprop.0+0x81f/0x1280  mlxsw_sp_nexthop6_group_get+0x392/0x6a0  mlxsw_sp_fib6_entry_create+0x46a/0xfd0  mlxsw_sp_router_fib6_replace+0x1ed/0x5f0  mlxsw_sp_router_fib6_event_work+0x10a/0x2a0  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20  Freed by task 154:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_save_free_info+0x3b/0x60  __kasan_slab_free+0x43/0x70  kmem_cache_free_bulk.part.0+0x1eb/0x5e0  kvfree_rcu_bulk+0x1f2/0x260  kfree_rcu_work+0x130/0x1b0  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20  Last potentially related work creation:  kasan_save_stack+0x30/0x50  kasan_record_aux_stack+0x8c/0xa0  kvfree_call_rcu+0x93/0x5b0  mlxsw_sp_router_neigh_event_work+0x67d/0x860  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71066",
                                "url": "https://ubuntu.com/security/CVE-2025-71066",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: ets: Always remove class from active list before deleting in ets_qdisc_change  zdi-disclosures@trendmicro.com says:  The vulnerability is a race condition between `ets_qdisc_dequeue` and `ets_qdisc_change`.  It leads to UAF on `struct Qdisc` object. Attacker requires the capability to create new user and network namespace in order to trigger the bug. See my additional commentary at the end of the analysis.  Analysis:  static int ets_qdisc_change(struct Qdisc *sch, struct nlattr *opt,                           struct netlink_ext_ack *extack) { ...        // (1) this lock is preventing .change handler (`ets_qdisc_change`)       //to race with .dequeue handler (`ets_qdisc_dequeue`)       sch_tree_lock(sch);        for (i = nbands; i < oldbands; i++) {               if (i >= q->nstrict && q->classes[i].qdisc->q.qlen)                       list_del_init(&q->classes[i].alist);               qdisc_purge_queue(q->classes[i].qdisc);       }        WRITE_ONCE(q->nbands, nbands);       for (i = nstrict; i < q->nstrict; i++) {               if (q->classes[i].qdisc->q.qlen) { \t\t      // (2) the class is added to the q->active                       list_add_tail(&q->classes[i].alist, &q->active);                       q->classes[i].deficit = quanta[i];               }       }       WRITE_ONCE(q->nstrict, nstrict);       memcpy(q->prio2band, priomap, sizeof(priomap));        for (i = 0; i < q->nbands; i++)               WRITE_ONCE(q->classes[i].quantum, quanta[i]);        for (i = oldbands; i < q->nbands; i++) {               q->classes[i].qdisc = queues[i];               if (q->classes[i].qdisc != &noop_qdisc)                       qdisc_hash_add(q->classes[i].qdisc, true);       }        // (3) the qdisc is unlocked, now dequeue can be called in parallel       // to the rest of .change handler       sch_tree_unlock(sch);        ets_offload_change(sch);       for (i = q->nbands; i < oldbands; i++) { \t      // (4) we're reducing the refcount for our class's qdisc and \t      //  freeing it               qdisc_put(q->classes[i].qdisc); \t      // (5) If we call .dequeue between (4) and (5), we will have \t      // a strong UAF and we can control RIP               q->classes[i].qdisc = NULL;               WRITE_ONCE(q->classes[i].quantum, 0);               q->classes[i].deficit = 0;               gnet_stats_basic_sync_init(&q->classes[i].bstats);               memset(&q->classes[i].qstats, 0, sizeof(q->classes[i].qstats));       }       return 0; }  Comment: This happens because some of the classes have their qdiscs assigned to NULL, but remain in the active list. This commit fixes this issue by always removing the class from the active list before deleting and freeing its associated qdisc  Reproducer Steps (trimmed version of what was sent by zdi-disclosures@trendmicro.com)  ``` DEV=\"${DEV:-lo}\" ROOT_HANDLE=\"${ROOT_HANDLE:-1:}\" BAND2_HANDLE=\"${BAND2_HANDLE:-20:}\"   # child under 1:2 PING_BYTES=\"${PING_BYTES:-48}\" PING_COUNT=\"${PING_COUNT:-200000}\" PING_DST=\"${PING_DST:-127.0.0.1}\"  SLOW_TBF_RATE=\"${SLOW_TBF_RATE:-8bit}\" SLOW_TBF_BURST=\"${SLOW_TBF_BURST:-100b}\" SLOW_TBF_LAT=\"${SLOW_TBF_LAT:-1s}\"  cleanup() {   tc qdisc del dev \"$DEV\" root 2>/dev/null } trap cleanup EXIT  ip link set \"$DEV\" up  tc qdisc del dev \"$DEV\" root 2>/dev/null || true  tc qdisc add dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 2  tc qdisc add dev \"$DEV\" parent 1:2 handle \"$BAND2_HANDLE\" \\   tbf rate \"$SLOW_TBF_RATE\" burst \"$SLOW_TBF_BURST\" latency \"$SLOW_TBF_LAT\"  tc filter add dev \"$DEV\" parent 1: protocol all prio 1 u32 match u32 0 0 flowid 1:2 tc -s qdisc ls dev $DEV  ping -I \"$DEV\" -f -c \"$PING_COUNT\" -s \"$PING_BYTES\" -W 0.001 \"$PING_DST\" \\   >/dev/null 2>&1 & tc qdisc change dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 0 tc qdisc change dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 2 tc -s qdisc ls dev $DEV tc qdisc del dev \"$DEV\" parent ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68787",
                                "url": "https://ubuntu.com/security/CVE-2025-68787",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netrom: Fix memory leak in nr_sendmsg()  syzbot reported a memory leak [1].  When function sock_alloc_send_skb() return NULL in nr_output(), the original skb is not freed, which was allocated in nr_sendmsg(). Fix this by freeing it before return.  [1] BUG: memory leak unreferenced object 0xffff888129f35500 (size 240):   comm \"syz.0.17\", pid 6119, jiffies 4294944652   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     00 00 00 00 00 00 00 00 00 10 52 28 81 88 ff ff  ..........R(....   backtrace (crc 1456a3e4):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4983 [inline]     slab_alloc_node mm/slub.c:5288 [inline]     kmem_cache_alloc_node_noprof+0x36f/0x5e0 mm/slub.c:5340     __alloc_skb+0x203/0x240 net/core/skbuff.c:660     alloc_skb include/linux/skbuff.h:1383 [inline]     alloc_skb_with_frags+0x69/0x3f0 net/core/skbuff.c:6671     sock_alloc_send_pskb+0x379/0x3e0 net/core/sock.c:2965     sock_alloc_send_skb include/net/sock.h:1859 [inline]     nr_sendmsg+0x287/0x450 net/netrom/af_netrom.c:1105     sock_sendmsg_nosec net/socket.c:727 [inline]     __sock_sendmsg net/socket.c:742 [inline]     sock_write_iter+0x293/0x2a0 net/socket.c:1195     new_sync_write fs/read_write.c:593 [inline]     vfs_write+0x45d/0x710 fs/read_write.c:686     ksys_write+0x143/0x170 fs/read_write.c:738     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]     do_syscall_64+0xa4/0xfa0 arch/x86/entry/syscall_64.c:94     entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68767",
                                "url": "https://ubuntu.com/security/CVE-2025-68767",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hfsplus: Verify inode mode when loading from disk  syzbot is reporting that S_IFMT bits of inode->i_mode can become bogus when the S_IFMT bits of the 16bits \"mode\" field loaded from disk are corrupted.  According to [1], the permissions field was treated as reserved in Mac OS 8 and 9. According to [2], the reserved field was explicitly initialized with 0, and that field must remain 0 as long as reserved. Therefore, when the \"mode\" field is not 0 (i.e. no longer reserved), the file must be S_IFDIR if dir == 1, and the file must be one of S_IFREG/S_IFLNK/S_IFCHR/ S_IFBLK/S_IFIFO/S_IFSOCK if dir == 0.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68774",
                                "url": "https://ubuntu.com/security/CVE-2025-68774",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create  When sync() and link() are called concurrently, both threads may enter hfs_bnode_find() without finding the node in the hash table and proceed to create it.  Thread A:   hfsplus_write_inode()     -> hfsplus_write_system_inode()       -> hfs_btree_write()         -> hfs_bnode_find(tree, 0)           -> __hfs_bnode_create(tree, 0)  Thread B:   hfsplus_create_cat()     -> hfs_brec_insert()       -> hfs_bnode_split()         -> hfs_bmap_alloc()           -> hfs_bnode_find(tree, 0)             -> __hfs_bnode_create(tree, 0)  In this case, thread A creates the bnode, sets refcnt=1, and hashes it. Thread B also tries to create the same bnode, notices it has already been inserted, drops its own instance, and uses the hashed one without getting the node.  ```  \tnode2 = hfs_bnode_findhash(tree, cnid); \tif (!node2) {                                 <- Thread A \t\thash = hfs_bnode_hash(cnid); \t\tnode->next_hash = tree->node_hash[hash]; \t\ttree->node_hash[hash] = node; \t\ttree->node_hash_cnt++; \t} else {                                      <- Thread B \t\tspin_unlock(&tree->hash_lock); \t\tkfree(node); \t\twait_event(node2->lock_wq, \t\t\t!test_bit(HFS_BNODE_NEW, &node2->flags)); \t\treturn node2; \t} ```  However, hfs_bnode_find() requires each call to take a reference. Here both threads end up setting refcnt=1. When they later put the node, this triggers:  BUG_ON(!atomic_read(&node->refcnt))  In this scenario, Thread B in fact finds the node in the hash table rather than creating a new one, and thus must take a reference.  Fix this by calling hfs_bnode_get() when reusing a bnode newly created by another thread to ensure the refcount is updated correctly.  A similar bug was fixed in HFS long ago in commit a9dc087fd3c4 (\"fix missing hfs_bnode_get() in __hfs_bnode_create\") but the same issue remained in HFS+ until now.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71118",
                                "url": "https://ubuntu.com/security/CVE-2025-71118",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ACPICA: Avoid walking the Namespace if start_node is NULL  Although commit 0c9992315e73 (\"ACPICA: Avoid walking the ACPI Namespace if it is not there\") fixed the situation when both start_node and acpi_gbl_root_node are NULL, the Linux kernel mainline now still crashed on Honor Magicbook 14 Pro [1].  That happens due to the access to the member of parent_node in acpi_ns_get_next_node().  The NULL pointer dereference will always happen, no matter whether or not the start_node is equal to ACPI_ROOT_OBJECT, so move the check of start_node being NULL out of the if block.  Unfortunately, all the attempts to contact Honor have failed, they refused to provide any technical support for Linux.  The bad DSDT table's dump could be found on GitHub [2].  DMI: HONOR FMB-P/FMB-P-PCB, BIOS 1.13 05/08/2025  [ rjw: Subject adjustment, changelog edits ]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68780",
                                "url": "https://ubuntu.com/security/CVE-2025-68780",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sched/deadline: only set free_cpus for online runqueues  Commit 16b269436b72 (\"sched/deadline: Modify cpudl::free_cpus to reflect rd->online\") introduced the cpudl_set/clear_freecpu functions to allow the cpu_dl::free_cpus mask to be manipulated by the deadline scheduler class rq_on/offline callbacks so the mask would also reflect this state.  Commit 9659e1eeee28 (\"sched/deadline: Remove cpu_active_mask from cpudl_find()\") removed the check of the cpu_active_mask to save some processing on the premise that the cpudl::free_cpus mask already reflected the runqueue online state.  Unfortunately, there are cases where it is possible for the cpudl_clear function to set the free_cpus bit for a CPU when the deadline runqueue is offline. When this occurs while a CPU is connected to the default root domain the flag may retain the bad state after the CPU has been unplugged. Later, a different CPU that is transitioning through the default root domain may push a deadline task to the powered down CPU when cpudl_find sees its free_cpus bit is set. If this happens the task will not have the opportunity to run.  One example is outlined here: https://lore.kernel.org/lkml/20250110233010.2339521-1-opendmb@gmail.com  Another occurs when the last deadline task is migrated from a CPU that has an offlined runqueue. The dequeue_task member of the deadline scheduler class will eventually call cpudl_clear and set the free_cpus bit for the CPU.  This commit modifies the cpudl_clear function to be aware of the online state of the deadline runqueue so that the free_cpus mask can be updated appropriately.  It is no longer necessary to manage the mask outside of the cpudl_set/clear functions so the cpudl_set/clear_freecpu functions are removed. In addition, since the free_cpus mask is now only updated under the cpudl lock the code was changed to use the non-atomic __cpumask functions.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68346",
                                "url": "https://ubuntu.com/security/CVE-2025-68346",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: dice: fix buffer overflow in detect_stream_formats()  The function detect_stream_formats() reads the stream_count value directly from a FireWire device without validating it. This can lead to out-of-bounds writes when a malicious device provides a stream_count value greater than MAX_STREAMS.  Fix by applying the same validation to both TX and RX stream counts in detect_stream_formats().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68764",
                                "url": "https://ubuntu.com/security/CVE-2025-68764",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFS: Automounted filesystems should inherit ro,noexec,nodev,sync flags  When a filesystem is being automounted, it needs to preserve the user-set superblock mount options, such as the \"ro\" flag.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68349",
                                "url": "https://ubuntu.com/security/CVE-2025-68349",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSv4/pNFS: Clear NFS_INO_LAYOUTCOMMIT in pnfs_mark_layout_stateid_invalid  Fixes a crash when layout is null during this call stack:  write_inode     -> nfs4_write_inode         -> pnfs_layoutcommit_inode  pnfs_set_layoutcommit relies on the lseg refcount to keep the layout around. Need to clear NFS_INO_LAYOUTCOMMIT otherwise we might attempt to reference a null layout.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68325",
                                "url": "https://ubuntu.com/security/CVE-2025-68325",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop  In cake_drop(), qdisc_tree_reduce_backlog() is used to update the qlen and backlog of the qdisc hierarchy. Its caller, cake_enqueue(), assumes that the parent qdisc will enqueue the current packet. However, this assumption breaks when cake_enqueue() returns NET_XMIT_CN: the parent qdisc stops enqueuing current packet, leaving the tree qlen/backlog accounting inconsistent. This mismatch can lead to a NULL dereference (e.g., when the parent Qdisc is qfq_qdisc).  This patch computes the qlen/backlog delta in a more robust way by observing the difference before and after the series of cake_drop() calls, and then compensates the qdisc tree accounting if cake_enqueue() returns NET_XMIT_CN.  To ensure correct compensation when ACK thinning is enabled, a new variable is introduced to keep qlen unchanged.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-18 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68354",
                                "url": "https://ubuntu.com/security/CVE-2025-68354",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regulator: core: Protect regulator_supply_alias_list with regulator_list_mutex  regulator_supply_alias_list was accessed without any locking in regulator_supply_alias(), regulator_register_supply_alias(), and regulator_unregister_supply_alias(). Concurrent registration, unregistration and lookups can race, leading to:  1 use-after-free if an alias entry is removed while being read, 2 duplicate entries when two threads register the same alias, 3 inconsistent alias mappings observed by consumers.  Protect all traversals, insertions and deletions on regulator_supply_alias_list with the existing regulator_list_mutex.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68758",
                                "url": "https://ubuntu.com/security/CVE-2025-68758",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  backlight: led-bl: Add devlink to supplier LEDs  LED Backlight is a consumer of one or multiple LED class devices, but devlink is currently unable to create correct supplier-producer links when the supplier is a class device. It creates instead a link where the supplier is the parent of the expected device.  One consequence is that removal order is not correctly enforced.  Issues happen for example with the following sections in a device tree overlay:      // An LED driver chip     pca9632@62 {         compatible = \"nxp,pca9632\";         reg = <0x62>;  \t// ...          addon_led_pwm: led-pwm@3 {             reg = <3>;             label = \"addon:led:pwm\";         };     };      backlight-addon {         compatible = \"led-backlight\";         leds = <&addon_led_pwm>;         brightness-levels = <255>;         default-brightness-level = <255>;     };  In this example, the devlink should be created between the backlight-addon (consumer) and the pca9632@62 (supplier). Instead it is created between the backlight-addon (consumer) and the parent of the pca9632@62, which is typically the I2C bus adapter.  On removal of the above overlay, the LED driver can be removed before the backlight device, resulting in:      Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010     ...     Call trace:      led_put+0xe0/0x140      devm_led_release+0x6c/0x98  Another way to reproduce the bug without any device tree overlays is unbinding the LED class device (pca9632@62) before unbinding the consumer (backlight-addon):    echo 11-0062 >/sys/bus/i2c/drivers/leds-pca963x/unbind   echo ...backlight-dock >/sys/bus/platform/drivers/led-backlight/unbind  Fix by adding a devlink between the consuming led-backlight device and the supplying LED device, as other drivers and subsystems do as well.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68765",
                                "url": "https://ubuntu.com/security/CVE-2025-68765",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()  In mt7615_mcu_wtbl_sta_add(), an skb sskb is allocated. If the subsequent call to mt76_connac_mcu_alloc_wtbl_req() fails, the function returns an error without freeing sskb, leading to a memory leak.  Fix this by calling dev_kfree_skb() on sskb in the error handling path to ensure it is properly released.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68740",
                                "url": "https://ubuntu.com/security/CVE-2025-68740",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ima: Handle error code returned by ima_filter_rule_match()  In ima_match_rules(), if ima_filter_rule_match() returns -ENOENT due to the rule being NULL, the function incorrectly skips the 'if (!rc)' check and sets 'result = true'. The LSM rule is considered a match, causing extra files to be measured by IMA.  This issue can be reproduced in the following scenario: After unloading the SELinux policy module via 'semodule -d', if an IMA measurement is triggered before ima_lsm_rules is updated, in ima_match_rules(), the first call to ima_filter_rule_match() returns -ESTALE. This causes the code to enter the 'if (rc == -ESTALE && !rule_reinitialized)' block, perform ima_lsm_copy_rule() and retry. In ima_lsm_copy_rule(), since the SELinux module has been removed, the rule becomes NULL, and the second call to ima_filter_rule_match() returns -ENOENT. This bypasses the 'if (!rc)' check and results in a false match.  Call trace:   selinux_audit_rule_match+0x310/0x3b8   security_audit_rule_match+0x60/0xa0   ima_match_rules+0x2e4/0x4a0   ima_match_policy+0x9c/0x1e8   ima_get_action+0x48/0x60   process_measurement+0xf8/0xa98   ima_bprm_check+0x98/0xd8   security_bprm_check+0x5c/0x78   search_binary_handler+0x6c/0x318   exec_binprm+0x58/0x1b8   bprm_execve+0xb8/0x130   do_execveat_common.isra.0+0x1a8/0x258   __arm64_sys_execve+0x48/0x68   invoke_syscall+0x50/0x128   el0_svc_common.constprop.0+0xc8/0xf0   do_el0_svc+0x24/0x38   el0_svc+0x44/0x200   el0t_64_sync_handler+0x100/0x130   el0t_64_sync+0x3c8/0x3d0  Fix this by changing 'if (!rc)' to 'if (rc <= 0)' to ensure that error codes like -ENOENT do not bypass the check and accidentally result in a successful match.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68362",
                                "url": "https://ubuntu.com/security/CVE-2025-68362",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rtl818x: rtl8187: Fix potential buffer underflow in rtl8187_rx_cb()  The rtl8187_rx_cb() calculates the rx descriptor header address by subtracting its size from the skb tail pointer. However, it does not validate if the received packet (skb->len from urb->actual_length) is large enough to contain this header.  If a truncated packet is received, this will lead to a buffer underflow, reading memory before the start of the skb data area, and causing a kernel panic.  Add length checks for both rtl8187 and rtl8187b descriptor headers before attempting to access them, dropping the packet cleanly if the check fails.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68759",
                                "url": "https://ubuntu.com/security/CVE-2025-68759",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()  In rtl8180_init_rx_ring(), memory is allocated for skb packets and DMA allocations in a loop. When an allocation fails, the previously successful allocations are not freed on exit.  Fix that by jumping to err_free_rings label on error, which calls rtl8180_free_rx_ring() to free the allocations. Remove the free of rx_ring in rtl8180_init_rx_ring() error path, and set the freed priv->rx_buf entry to null, to avoid double free.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68364",
                                "url": "https://ubuntu.com/security/CVE-2025-68364",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ocfs2: relax BUG() to ocfs2_error() in __ocfs2_move_extent()  In '__ocfs2_move_extent()', relax 'BUG()' to 'ocfs2_error()' just to avoid crashing the whole kernel due to a filesystem corruption.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68366",
                                "url": "https://ubuntu.com/security/CVE-2025-68366",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nbd: defer config unlock in nbd_genl_connect  There is one use-after-free warning when running NBD_CMD_CONNECT and NBD_CLEAR_SOCK:  nbd_genl_connect   nbd_alloc_and_init_config // config_refs=1   nbd_start_device // config_refs=2   set NBD_RT_HAS_CONFIG_REF\t\t\topen nbd // config_refs=3   recv_work done // config_refs=2 \t\t\t\t\t\tNBD_CLEAR_SOCK // config_refs=1 \t\t\t\t\t\tclose nbd // config_refs=0   refcount_inc -> uaf  ------------[ cut here ]------------ refcount_t: addition on 0; use-after-free. WARNING: CPU: 24 PID: 1014 at lib/refcount.c:25 refcount_warn_saturate+0x12e/0x290  nbd_genl_connect+0x16d0/0x1ab0  genl_family_rcv_msg_doit+0x1f3/0x310  genl_rcv_msg+0x44a/0x790  The issue can be easily reproduced by adding a small delay before refcount_inc(&nbd->config_refs) in nbd_genl_connect():          mutex_unlock(&nbd->config_lock);         if (!ret) {                 set_bit(NBD_RT_HAS_CONFIG_REF, &config->runtime_flags); +               printk(\"before sleep\\n\"); +               mdelay(5 * 1000); +               printk(\"after sleep\\n\");                 refcount_inc(&nbd->config_refs);                 nbd_connect_reply(info, nbd->index);         }",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68367",
                                "url": "https://ubuntu.com/security/CVE-2025-68367",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macintosh/mac_hid: fix race condition in mac_hid_toggle_emumouse  The following warning appears when running syzkaller, and this issue also exists in the mainline code.   ------------[ cut here ]------------  list_add double add: new=ffffffffa57eee28, prev=ffffffffa57eee28, next=ffffffffa5e63100.  WARNING: CPU: 0 PID: 1491 at lib/list_debug.c:35 __list_add_valid_or_report+0xf7/0x130  Modules linked in:  CPU: 0 PID: 1491 Comm: syz.1.28 Not tainted 6.6.0+ #3  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014  RIP: 0010:__list_add_valid_or_report+0xf7/0x130  RSP: 0018:ff1100010dfb7b78 EFLAGS: 00010282  RAX: 0000000000000000 RBX: ffffffffa57eee18 RCX: ffffffff97fc9817  RDX: 0000000000040000 RSI: ffa0000002383000 RDI: 0000000000000001  RBP: ffffffffa57eee28 R08: 0000000000000001 R09: ffe21c0021bf6f2c  R10: 0000000000000001 R11: 6464615f7473696c R12: ffffffffa5e63100  R13: ffffffffa57eee28 R14: ffffffffa57eee28 R15: ff1100010dfb7d48  FS:  00007fb14398b640(0000) GS:ff11000119600000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000000 CR3: 000000010d096005 CR4: 0000000000773ef0  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000  DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400  PKRU: 80000000  Call Trace:   <TASK>   input_register_handler+0xb3/0x210   mac_hid_start_emulation+0x1c5/0x290   mac_hid_toggle_emumouse+0x20a/0x240   proc_sys_call_handler+0x4c2/0x6e0   new_sync_write+0x1b1/0x2d0   vfs_write+0x709/0x950   ksys_write+0x12a/0x250   do_syscall_64+0x5a/0x110   entry_SYSCALL_64_after_hwframe+0x78/0xe2  The WARNING occurs when two processes concurrently write to the mac-hid emulation sysctl, causing a race condition in mac_hid_toggle_emumouse(). Both processes read old_val=0, then both try to register the input handler, leading to a double list_add of the same handler.    CPU0                             CPU1   -------------------------        -------------------------   vfs_write() //write 1            vfs_write()  //write 1     proc_sys_write()                 proc_sys_write()       mac_hid_toggle_emumouse()          mac_hid_toggle_emumouse()         old_val = *valp // old_val=0                                            old_val = *valp // old_val=0                                            mutex_lock_killable()                                            proc_dointvec() // *valp=1                                            mac_hid_start_emulation()                                              input_register_handler()                                            mutex_unlock()         mutex_lock_killable()         proc_dointvec()         mac_hid_start_emulation()           input_register_handler() //Trigger Warning         mutex_unlock()  Fix this by moving the old_val read inside the mutex lock region.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68372",
                                "url": "https://ubuntu.com/security/CVE-2025-68372",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nbd: defer config put in recv_work  There is one uaf issue in recv_work when running NBD_CLEAR_SOCK and NBD_CMD_RECONFIGURE:   nbd_genl_connect     // conf_ref=2 (connect and recv_work A)   nbd_open\t       // conf_ref=3   recv_work A done     // conf_ref=2   NBD_CLEAR_SOCK       // conf_ref=1   nbd_genl_reconfigure // conf_ref=2 (trigger recv_work B)   close nbd\t       // conf_ref=1   recv_work B     config_put         // conf_ref=0     atomic_dec(&config->recv_threads); -> UAF  Or only running NBD_CLEAR_SOCK:   nbd_genl_connect   // conf_ref=2   nbd_open \t     // conf_ref=3   NBD_CLEAR_SOCK     // conf_ref=2   close nbd     nbd_release       config_put     // conf_ref=1   recv_work     config_put \t     // conf_ref=0     atomic_dec(&config->recv_threads); -> UAF  Commit 87aac3a80af5 (\"nbd: call nbd_config_put() before notifying the waiter\") moved nbd_config_put() to run before waking up the waiter in recv_work, in order to ensure that nbd_start_device_ioctl() would not be woken up while nbd->task_recv was still uncleared.  However, in nbd_start_device_ioctl(), after being woken up it explicitly calls flush_workqueue() to make sure all current works are finished. Therefore, there is no need to move the config put ahead of the wakeup.  Move nbd_config_put() to the end of recv_work, so that the reference is held for the whole lifetime of the worker thread. This makes sure the config cannot be freed while recv_work is still running, even if clear + reconfigure interleave.  In addition, we don't need to worry about recv_work dropping the last nbd_put (which causes deadlock):  path A (netlink with NBD_CFLAG_DESTROY_ON_DISCONNECT):   connect  // nbd_refs=1 (trigger recv_work)   open nbd // nbd_refs=2   NBD_CLEAR_SOCK   close nbd     nbd_release       nbd_disconnect_and_put         flush_workqueue // recv_work done       nbd_config_put         nbd_put // nbd_refs=1       nbd_put // nbd_refs=0         queue_work  path B (netlink without NBD_CFLAG_DESTROY_ON_DISCONNECT):   connect  // nbd_refs=2 (trigger recv_work)   open nbd // nbd_refs=3   NBD_CLEAR_SOCK // conf_refs=2   close nbd     nbd_release       nbd_config_put // conf_refs=1       nbd_put // nbd_refs=2   recv_work done // conf_refs=0, nbd_refs=1   rmmod // nbd_refs=0  Depends-on: e2daec488c57 (\"nbd: Fix hungtask when nbd_config_put\")",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68746",
                                "url": "https://ubuntu.com/security/CVE-2025-68746",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: tegra210-quad: Fix timeout handling  When the CPU that the QSPI interrupt handler runs on (typically CPU 0) is excessively busy, it can lead to rare cases of the IRQ thread not running before the transfer timeout is reached.  While handling the timeouts, any pending transfers are cleaned up and the message that they correspond to is marked as failed, which leaves the curr_xfer field pointing at stale memory.  To avoid this, clear curr_xfer to NULL upon timeout and check for this condition when the IRQ thread is finally run.  While at it, also make sure to clear interrupts on failure so that new interrupts can be run.  A better, more involved, fix would move the interrupt clearing into a hard IRQ handler. Ideally we would also want to signal that the IRQ thread no longer needs to be run after the timeout is hit to avoid the extra check for a valid transfer.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68724",
                                "url": "https://ubuntu.com/security/CVE-2025-68724",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: asymmetric_keys - prevent overflow in asymmetric_key_generate_id  Use check_add_overflow() to guard against potential integer overflows when adding the binary blob lengths and the size of an asymmetric_key_id structure and return ERR_PTR(-EOVERFLOW) accordingly. This prevents a possible buffer overflow when copying data from potentially malicious X.509 certificate fields that can be arbitrarily large, such as ASN.1 INTEGER serial numbers, issuer names, etc.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68727",
                                "url": "https://ubuntu.com/security/CVE-2025-68727",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: Fix uninit buffer allocated by __getname()  Fix uninit errors caused after buffer allocation given to 'de'; by initializing the buffer with zeroes. The fix was found by using KMSAN.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68728",
                                "url": "https://ubuntu.com/security/CVE-2025-68728",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: fix uninit memory after failed mi_read in mi_format_new  Fix a KMSAN un-init bug found by syzkaller.  ntfs_get_bh() expects a buffer from sb_getblk(), that buffer may not be uptodate. We do not bring the buffer uptodate before setting it as uptodate. If the buffer were to not be uptodate, it could mean adding a buffer with un-init data to the mi record. Attempting to load that record will trigger KMSAN.  Avoid this by setting the buffer as uptodate, if it’s not already, by overwriting it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68757",
                                "url": "https://ubuntu.com/security/CVE-2025-68757",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vgem-fence: Fix potential deadlock on release  A timer that expires a vgem fence automatically in 10 seconds is now released with timer_delete_sync() from fence->ops.release() called on last dma_fence_put().  In some scenarios, it can run in IRQ context, which is not safe unless TIMER_IRQSAFE is used.  One potentially risky scenario was demonstrated in Intel DRM CI trybot, BAT run on machine bat-adlp-6, while working on new IGT subtests syncobj_timeline@stress-* as user space replacements of some problematic test cases of a dma-fence-chain selftest [1].  [117.004338] ================================ [117.004340] WARNING: inconsistent lock state [117.004342] 6.17.0-rc7-CI_DRM_17270-g7644974e648c+ #1 Tainted: G S   U [117.004346] -------------------------------- [117.004347] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. [117.004349] swapper/0/0 [HC1[1]:SC1[1]:HE0:SE0] takes: [117.004352] ffff888138f86aa8 ((&fence->timer)){?.-.}-{0:0}, at: __timer_delete_sync+0x4b/0x190 [117.004361] {HARDIRQ-ON-W} state was registered at: [117.004363]   lock_acquire+0xc4/0x2e0 [117.004366]   call_timer_fn+0x80/0x2a0 [117.004368]   __run_timers+0x231/0x310 [117.004370]   run_timer_softirq+0x76/0xe0 [117.004372]   handle_softirqs+0xd4/0x4d0 [117.004375]   __irq_exit_rcu+0x13f/0x160 [117.004377]   irq_exit_rcu+0xe/0x20 [117.004379]   sysvec_apic_timer_interrupt+0xa0/0xc0 [117.004382]   asm_sysvec_apic_timer_interrupt+0x1b/0x20 [117.004385]   cpuidle_enter_state+0x12b/0x8a0 [117.004388]   cpuidle_enter+0x2e/0x50 [117.004393]   call_cpuidle+0x22/0x60 [117.004395]   do_idle+0x1fd/0x260 [117.004398]   cpu_startup_entry+0x29/0x30 [117.004401]   start_secondary+0x12d/0x160 [117.004404]   common_startup_64+0x13e/0x141 [117.004407] irq event stamp: 2282669 [117.004409] hardirqs last  enabled at (2282668): [<ffffffff8289db71>] _raw_spin_unlock_irqrestore+0x51/0x80 [117.004414] hardirqs last disabled at (2282669): [<ffffffff82882021>] sysvec_irq_work+0x11/0xc0 [117.004419] softirqs last  enabled at (2254702): [<ffffffff8289fd00>] __do_softirq+0x10/0x18 [117.004423] softirqs last disabled at (2254725): [<ffffffff813d4ddf>] __irq_exit_rcu+0x13f/0x160 [117.004426] other info that might help us debug this: [117.004429]  Possible unsafe locking scenario: [117.004432]        CPU0 [117.004433]        ---- [117.004434]   lock((&fence->timer)); [117.004436]   <Interrupt> [117.004438]     lock((&fence->timer)); [117.004440]  *** DEADLOCK *** [117.004443] 1 lock held by swapper/0/0: [117.004445]  #0: ffffc90000003d50 ((&fence->timer)){?.-.}-{0:0}, at: call_timer_fn+0x7a/0x2a0 [117.004450] stack backtrace: [117.004453] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G S   U             6.17.0-rc7-CI_DRM_17270-g7644974e648c+ #1 PREEMPT(voluntary) [117.004455] Tainted: [S]=CPU_OUT_OF_SPEC, [U]=USER [117.004455] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR4 RVP, BIOS RPLPFWI1.R00.4035.A00.2301200723 01/20/2023 [117.004456] Call Trace: [117.004456]  <IRQ> [117.004457]  dump_stack_lvl+0x91/0xf0 [117.004460]  dump_stack+0x10/0x20 [117.004461]  print_usage_bug.part.0+0x260/0x360 [117.004463]  mark_lock+0x76e/0x9c0 [117.004465]  ? register_lock_class+0x48/0x4a0 [117.004467]  __lock_acquire+0xbc3/0x2860 [117.004469]  lock_acquire+0xc4/0x2e0 [117.004470]  ? __timer_delete_sync+0x4b/0x190 [117.004472]  ? __timer_delete_sync+0x4b/0x190 [117.004473]  __timer_delete_sync+0x68/0x190 [117.004474]  ? __timer_delete_sync+0x4b/0x190 [117.004475]  timer_delete_sync+0x10/0x20 [117.004476]  vgem_fence_release+0x19/0x30 [vgem] [117.004478]  dma_fence_release+0xc1/0x3b0 [117.004480]  ? dma_fence_release+0xa1/0x3b0 [117.004481]  dma_fence_chain_release+0xe7/0x130 [117.004483]  dma_fence_release+0xc1/0x3b0 [117.004484]  ? _raw_spin_unlock_irqrestore+0x27/0x80 [117.004485]  dma_fence_chain_irq_work+0x59/0x80 [117.004487]  irq_work_single+0x75/0xa0 [117.004490]  irq_work_r ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68732",
                                "url": "https://ubuntu.com/security/CVE-2025-68732",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gpu: host1x: Fix race in syncpt alloc/free  Fix race condition between host1x_syncpt_alloc() and host1x_syncpt_put() by using kref_put_mutex() instead of kref_put() + manual mutex locking.  This ensures no thread can acquire the syncpt_mutex after the refcount drops to zero but before syncpt_release acquires it. This prevents races where syncpoints could be allocated while still being cleaned up from a previous release.  Remove explicit mutex locking in syncpt_release as kref_put_mutex() handles this atomically.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68733",
                                "url": "https://ubuntu.com/security/CVE-2025-68733",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smack: fix bug: unprivileged task can create labels  If an unprivileged task is allowed to relabel itself (/smack/relabel-self is not empty), it can freely create new labels by writing their names into own /proc/PID/attr/smack/current  This occurs because do_setattr() imports the provided label in advance, before checking \"relabel-self\" list.  This change ensures that the \"relabel-self\" list is checked before importing the label.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68254",
                                "url": "https://ubuntu.com/security/CVE-2025-68254",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix out-of-bounds read in OnBeacon ESR IE parsing  The Extended Supported Rates (ESR) IE handling in OnBeacon accessed *(p + 1 + ielen) and *(p + 2 + ielen) without verifying that these offsets lie within the received frame buffer. A malformed beacon with an ESR IE positioned at the end of the buffer could cause an out-of-bounds read, potentially triggering a kernel panic.  Add a boundary check to ensure that the ESR IE body and the subsequent bytes are within the limits of the frame before attempting to access them.  This prevents OOB reads caused by malformed beacon frames.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68255",
                                "url": "https://ubuntu.com/security/CVE-2025-68255",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix stack buffer overflow in OnAssocReq IE parsing  The Supported Rates IE length from an incoming Association Request frame was used directly as the memcpy() length when copying into a fixed-size 16-byte stack buffer (supportRate). A malicious station can advertise an IE length larger than 16 bytes, causing a stack buffer overflow.  Clamp ie_len to the buffer size before copying the Supported Rates IE, and correct the bounds check when merging Extended Supported Rates to prevent a second potential overflow.  This prevents kernel stack corruption triggered by malformed association requests.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68257",
                                "url": "https://ubuntu.com/security/CVE-2025-68257",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: check device's attached status in compat ioctls  Syzbot identified an issue [1] that crashes kernel, seemingly due to unexistent callback dev->get_valid_routes(). By all means, this should not occur as said callback must always be set to get_zero_valid_routes() in __comedi_device_postconfig().  As the crash seems to appear exclusively in i386 kernels, at least, judging from [1] reports, the blame lies with compat versions of standard IOCTL handlers. Several of them are modified and do not use comedi_unlocked_ioctl(). While functionality of these ioctls essentially copy their original versions, they do not have required sanity check for device's attached status. This, in turn, leads to a possibility of calling select IOCTLs on a device that has not been properly setup, even via COMEDI_DEVCONFIG.  Doing so on unconfigured devices means that several crucial steps are missed, for instance, specifying dev->get_valid_routes() callback.  Fix this somewhat crudely by ensuring device's attached status before performing any ioctls, improving logic consistency between modern and compat functions.  [1] Syzbot report: BUG: kernel NULL pointer dereference, address: 0000000000000000 ... CR2: ffffffffffffffd6 CR3: 000000006c717000 CR4: 0000000000352ef0 Call Trace:  <TASK>  get_valid_routes drivers/comedi/comedi_fops.c:1322 [inline]  parse_insn+0x78c/0x1970 drivers/comedi/comedi_fops.c:1401  do_insnlist_ioctl+0x272/0x700 drivers/comedi/comedi_fops.c:1594  compat_insnlist drivers/comedi/comedi_fops.c:3208 [inline]  comedi_compat_ioctl+0x810/0x990 drivers/comedi/comedi_fops.c:3273  __do_compat_sys_ioctl fs/ioctl.c:695 [inline]  __se_compat_sys_ioctl fs/ioctl.c:638 [inline]  __ia32_compat_sys_ioctl+0x242/0x370 fs/ioctl.c:638  do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline] ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68258",
                                "url": "https://ubuntu.com/security/CVE-2025-68258",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: multiq3: sanitize config options in multiq3_attach()  Syzbot identified an issue [1] in multiq3_attach() that induces a task timeout due to open() or COMEDI_DEVCONFIG ioctl operations, specifically, in the case of multiq3 driver.  This problem arose when syzkaller managed to craft weird configuration options used to specify the number of channels in encoder subdevice. If a particularly great number is passed to s->n_chan in multiq3_attach() via it->options[2], then multiple calls to multiq3_encoder_reset() at the end of driver-specific attach() method will be running for minutes, thus blocking tasks and affected devices as well.  While this issue is most likely not too dangerous for real-life devices, it still makes sense to sanitize configuration inputs. Enable a sensible limit on the number of encoder chips (4 chips max, each with 2 channels) to stop this behaviour from manifesting.  [1] Syzbot crash: INFO: task syz.2.19:6067 blocked for more than 143 seconds. ... Call Trace:  <TASK>  context_switch kernel/sched/core.c:5254 [inline]  __schedule+0x17c4/0x4d60 kernel/sched/core.c:6862  __schedule_loop kernel/sched/core.c:6944 [inline]  schedule+0x165/0x360 kernel/sched/core.c:6959  schedule_preempt_disabled+0x13/0x30 kernel/sched/core.c:7016  __mutex_lock_common kernel/locking/mutex.c:676 [inline]  __mutex_lock+0x7e6/0x1350 kernel/locking/mutex.c:760  comedi_open+0xc0/0x590 drivers/comedi/comedi_fops.c:2868  chrdev_open+0x4cc/0x5e0 fs/char_dev.c:414  do_dentry_open+0x953/0x13f0 fs/open.c:965  vfs_open+0x3b/0x340 fs/open.c:1097 ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68332",
                                "url": "https://ubuntu.com/security/CVE-2025-68332",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: c6xdigio: Fix invalid PNP driver unregistration  The Comedi low-level driver \"c6xdigio\" seems to be for a parallel port connected device.  When the Comedi core calls the driver's Comedi \"attach\" handler `c6xdigio_attach()` to configure a Comedi to use this driver, it tries to enable the parallel port PNP resources by registering a PNP driver with `pnp_register_driver()`, but ignores the return value.  (The `struct pnp_driver` it uses has only the `name` and `id_table` members filled in.)  The driver's Comedi \"detach\" handler `c6xdigio_detach()` unconditionally unregisters the PNP driver with `pnp_unregister_driver()`.  It is possible for `c6xdigio_attach()` to return an error before it calls `pnp_register_driver()` and it is possible for the call to `pnp_register_driver()` to return an error (that is ignored).  In both cases, the driver should not be calling `pnp_unregister_driver()` as it does in `c6xdigio_detach()`.  (Note that `c6xdigio_detach()` will be called by the Comedi core if `c6xdigio_attach()` returns an error, or if the Comedi core decides to detach the Comedi device from the driver for some other reason.)  The unconditional call to `pnp_unregister_driver()` without a previous successful call to `pnp_register_driver()` will cause `driver_unregister()` to issue a warning \"Unexpected driver unregister!\".  This was detected by Syzbot [1].  Also, the PNP driver registration and unregistration should be done at module init and exit time, respectively, not when attaching or detaching Comedi devices to the driver.  (There might be more than one Comedi device being attached to the driver, although that is unlikely.)  Change the driver to do the PNP driver registration at module init time, and the unregistration at module exit time.  Since `c6xdigio_detach()` now only calls `comedi_legacy_detach()`, remove the function and change the Comedi driver \"detach\" handler to `comedi_legacy_detach`.  ------------------------------------------- [1] Syzbot sample crash report: Unexpected driver unregister! WARNING: CPU: 0 PID: 5970 at drivers/base/driver.c:273 driver_unregister drivers/base/driver.c:273 [inline] WARNING: CPU: 0 PID: 5970 at drivers/base/driver.c:273 driver_unregister+0x90/0xb0 drivers/base/driver.c:270 Modules linked in: CPU: 0 UID: 0 PID: 5970 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 RIP: 0010:driver_unregister drivers/base/driver.c:273 [inline] RIP: 0010:driver_unregister+0x90/0xb0 drivers/base/driver.c:270 Code: 48 89 ef e8 c2 e6 82 fc 48 89 df e8 3a 93 ff ff 5b 5d e9 c3 6d d9 fb e8 be 6d d9 fb 90 48 c7 c7 e0 f8 1f 8c e8 51 a2 97 fb 90 <0f> 0b 90 90 5b 5d e9 a5 6d d9 fb e8 e0 f4 41 fc eb 94 e8 d9 f4 41 RSP: 0018:ffffc9000373f9a0 EFLAGS: 00010282 RAX: 0000000000000000 RBX: ffffffff8ff24720 RCX: ffffffff817b6ee8 RDX: ffff88807c932480 RSI: ffffffff817b6ef5 RDI: 0000000000000001 RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000001 R11: 0000000000000001 R12: ffffffff8ff24660 R13: dffffc0000000000 R14: 0000000000000000 R15: ffff88814cca0000 FS:  000055556dab1500(0000) GS:ffff8881249d9000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000055f77f285cd0 CR3: 000000007d871000 CR4: 00000000003526f0 Call Trace:  <TASK>  comedi_device_detach_locked+0x12f/0xa50 drivers/comedi/drivers.c:207  comedi_device_detach+0x67/0xb0 drivers/comedi/drivers.c:215  comedi_device_attach+0x43d/0x900 drivers/comedi/drivers.c:1011  do_devconfig_ioctl+0x1b1/0x710 drivers/comedi/comedi_fops.c:872  comedi_unlocked_ioctl+0x165d/0x2f00 drivers/comedi/comedi_fops.c:2178  vfs_ioctl fs/ioctl.c:51 [inline]  __do_sys_ioctl fs/ioctl.c:597 [inline]  __se_sys_ioctl fs/ioctl.c:583 [inline]  __x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_sys ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68266",
                                "url": "https://ubuntu.com/security/CVE-2025-68266",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bfs: Reconstruct file type when loading from disk  syzbot is reporting that S_IFMT bits of inode->i_mode can become bogus when the S_IFMT bits of the 32bits \"mode\" field loaded from disk are corrupted or when the 32bits \"attributes\" field loaded from disk are corrupted.  A documentation says that BFS uses only lower 9 bits of the \"mode\" field. But I can't find an explicit explanation that the unused upper 23 bits (especially, the S_IFMT bits) are initialized with 0.  Therefore, ignore the S_IFMT bits of the \"mode\" field loaded from disk. Also, verify that the value of the \"attributes\" field loaded from disk is either BFS_VREG or BFS_VDIR (because BFS supports only regular files and the root directory).",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68335",
                                "url": "https://ubuntu.com/security/CVE-2025-68335",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: pcl818: fix null-ptr-deref in pcl818_ai_cancel()  Syzbot identified an issue [1] in pcl818_ai_cancel(), which stems from the fact that in case of early device detach via pcl818_detach(), subdevice dev->read_subdev may not have initialized its pointer to &struct comedi_async as intended. Thus, any such dereferencing of &s->async->cmd will lead to general protection fault and kernel crash.  Mitigate this problem by removing a call to pcl818_ai_cancel() from pcl818_detach() altogether. This way, if the subdevice setups its support for async commands, everything async-related will be handled via subdevice's own ->cancel() function in comedi_device_detach_locked() even before pcl818_detach(). If no support for asynchronous commands is provided, there is no need to cancel anything either.  [1] Syzbot crash: Oops: general protection fault, probably for non-canonical address 0xdffffc0000000005: 0000 [#1] SMP KASAN PTI KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f] CPU: 1 UID: 0 PID: 6050 Comm: syz.0.18 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025 RIP: 0010:pcl818_ai_cancel+0x69/0x3f0 drivers/comedi/drivers/pcl818.c:762 ... Call Trace:  <TASK>  pcl818_detach+0x66/0xd0 drivers/comedi/drivers/pcl818.c:1115  comedi_device_detach_locked+0x178/0x750 drivers/comedi/drivers.c:207  do_devconfig_ioctl drivers/comedi/comedi_fops.c:848 [inline]  comedi_unlocked_ioctl+0xcde/0x1020 drivers/comedi/comedi_fops.c:2178  vfs_ioctl fs/ioctl.c:51 [inline]  __do_sys_ioctl fs/ioctl.c:597 [inline] ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68261",
                                "url": "https://ubuntu.com/security/CVE-2025-68261",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock()  Fix a race between inline data destruction and block mapping.  The function ext4_destroy_inline_data_nolock() changes the inode data layout by clearing EXT4_INODE_INLINE_DATA and setting EXT4_INODE_EXTENTS. At the same time, another thread may execute ext4_map_blocks(), which tests EXT4_INODE_EXTENTS to decide whether to call ext4_ext_map_blocks() or ext4_ind_map_blocks().  Without i_data_sem protection, ext4_ind_map_blocks() may receive inode with EXT4_INODE_EXTENTS flag and triggering assert.  kernel BUG at fs/ext4/indirect.c:546! EXT4-fs (loop2): unmounting filesystem. invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:ext4_ind_map_blocks.cold+0x2b/0x5a fs/ext4/indirect.c:546  Call Trace:  <TASK>  ext4_map_blocks+0xb9b/0x16f0 fs/ext4/inode.c:681  _ext4_get_block+0x242/0x590 fs/ext4/inode.c:822  ext4_block_write_begin+0x48b/0x12c0 fs/ext4/inode.c:1124  ext4_write_begin+0x598/0xef0 fs/ext4/inode.c:1255  ext4_da_write_begin+0x21e/0x9c0 fs/ext4/inode.c:3000  generic_perform_write+0x259/0x5d0 mm/filemap.c:3846  ext4_buffered_write_iter+0x15b/0x470 fs/ext4/file.c:285  ext4_file_write_iter+0x8e0/0x17f0 fs/ext4/file.c:679  call_write_iter include/linux/fs.h:2271 [inline]  do_iter_readv_writev+0x212/0x3c0 fs/read_write.c:735  do_iter_write+0x186/0x710 fs/read_write.c:861  vfs_iter_write+0x70/0xa0 fs/read_write.c:902  iter_file_splice_write+0x73b/0xc90 fs/splice.c:685  do_splice_from fs/splice.c:763 [inline]  direct_splice_actor+0x10f/0x170 fs/splice.c:950  splice_direct_to_actor+0x33a/0xa10 fs/splice.c:896  do_splice_direct+0x1a9/0x280 fs/splice.c:1002  do_sendfile+0xb13/0x12c0 fs/read_write.c:1255  __do_sys_sendfile64 fs/read_write.c:1323 [inline]  __se_sys_sendfile64 fs/read_write.c:1309 [inline]  __x64_sys_sendfile64+0x1cf/0x210 fs/read_write.c:1309  do_syscall_x64 arch/x86/entry/common.c:51 [inline]  do_syscall_64+0x35/0x80 arch/x86/entry/common.c:81  entry_SYSCALL_64_after_hwframe+0x6e/0xd8",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68336",
                                "url": "https://ubuntu.com/security/CVE-2025-68336",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  locking/spinlock/debug: Fix data-race in do_raw_write_lock  KCSAN reports:  BUG: KCSAN: data-race in do_raw_write_lock / do_raw_write_lock  write (marked) to 0xffff800009cf504c of 4 bytes by task 1102 on cpu 1:  do_raw_write_lock+0x120/0x204  _raw_write_lock_irq  do_exit  call_usermodehelper_exec_async  ret_from_fork  read to 0xffff800009cf504c of 4 bytes by task 1103 on cpu 0:  do_raw_write_lock+0x88/0x204  _raw_write_lock_irq  do_exit  call_usermodehelper_exec_async  ret_from_fork  value changed: 0xffffffff -> 0x00000001  Reported by Kernel Concurrency Sanitizer on: CPU: 0 PID: 1103 Comm: kworker/u4:1 6.1.111  Commit 1a365e822372 (\"locking/spinlock/debug: Fix various data races\") has adressed most of these races, but seems to be not consistent/not complete.  >From do_raw_write_lock() only debug_write_lock_after() part has been converted to WRITE_ONCE(), but not debug_write_lock_before() part. Do it now.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68264",
                                "url": "https://ubuntu.com/security/CVE-2025-68264",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: refresh inline data size before write operations  The cached ei->i_inline_size can become stale between the initial size check and when ext4_update_inline_data()/ext4_create_inline_data() use it. Although ext4_get_max_inline_size() reads the correct value at the time of the check, concurrent xattr operations can modify i_inline_size before ext4_write_lock_xattr() is acquired.  This causes ext4_update_inline_data() and ext4_create_inline_data() to work with stale capacity values, leading to a BUG_ON() crash in ext4_write_inline_data():    kernel BUG at fs/ext4/inline.c:1331!   BUG_ON(pos + len > EXT4_I(inode)->i_inline_size);  The race window: 1. ext4_get_max_inline_size() reads i_inline_size = 60 (correct) 2. Size check passes for 50-byte write 3. [Another thread adds xattr, i_inline_size changes to 40] 4. ext4_write_lock_xattr() acquires lock 5. ext4_update_inline_data() uses stale i_inline_size = 60 6. Attempts to write 50 bytes but only 40 bytes actually available 7. BUG_ON() triggers  Fix this by recalculating i_inline_size via ext4_find_inline_data_nolock() immediately after acquiring xattr_sem. This ensures ext4_update_inline_data() and ext4_create_inline_data() work with current values that are protected from concurrent modifications.  This is similar to commit a54c4613dac1 (\"ext4: fix race writing to an inline_data file while its xattrs are changing\") which fixed i_inline_off staleness. This patch addresses the related i_inline_size staleness issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68337",
                                "url": "https://ubuntu.com/security/CVE-2025-68337",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system corrupted  There's issue when file system corrupted: ------------[ cut here ]------------ kernel BUG at fs/jbd2/transaction.c:1289! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 5 UID: 0 PID: 2031 Comm: mkdir Not tainted 6.18.0-rc1-next RIP: 0010:jbd2_journal_get_create_access+0x3b6/0x4d0 RSP: 0018:ffff888117aafa30 EFLAGS: 00010202 RAX: 0000000000000000 RBX: ffff88811a86b000 RCX: ffffffff89a63534 RDX: 1ffff110200ec602 RSI: 0000000000000004 RDI: ffff888100763010 RBP: ffff888100763000 R08: 0000000000000001 R09: ffff888100763028 R10: 0000000000000003 R11: 0000000000000000 R12: 0000000000000000 R13: ffff88812c432000 R14: ffff88812c608000 R15: ffff888120bfc000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f91d6970c99 CR3: 00000001159c4000 CR4: 00000000000006f0 Call Trace:  <TASK>  __ext4_journal_get_create_access+0x42/0x170  ext4_getblk+0x319/0x6f0  ext4_bread+0x11/0x100  ext4_append+0x1e6/0x4a0  ext4_init_new_dir+0x145/0x1d0  ext4_mkdir+0x326/0x920  vfs_mkdir+0x45c/0x740  do_mkdirat+0x234/0x2f0  __x64_sys_mkdir+0xd6/0x120  do_syscall_64+0x5f/0xfa0  entry_SYSCALL_64_after_hwframe+0x76/0x7e  The above issue occurs with us in errors=continue mode when accompanied by storage failures. There have been many inconsistencies in the file system data. In the case of file system data inconsistency, for example, if the block bitmap of a referenced block is not set, it can lead to the situation where a block being committed is allocated and used again. As a result, the following condition will not be satisfied then trigger BUG_ON. Of course, it is entirely possible to construct a problematic image that can trigger this BUG_ON through specific operations. In fact, I have constructed such an image and easily reproduced this issue. Therefore, J_ASSERT() holds true only under ideal conditions, but it may not necessarily be satisfied in exceptional scenarios. Using J_ASSERT() directly in abnormal situations would cause the system to crash, which is clearly not what we want. So here we directly trigger a JBD abort instead of immediately invoking BUG_ON.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-47666",
                                "url": "https://ubuntu.com/security/CVE-2024-47666",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: pm80xx: Set phy->enable_completion only when we wait for it  pm8001_phy_control() populates the enable_completion pointer with a stack address, sends a PHY_LINK_RESET / PHY_HARD_RESET, waits 300 ms, and returns. The problem arises when a phy control response comes late.  After 300 ms the pm8001_phy_control() function returns and the passed enable_completion stack address is no longer valid. Late phy control response invokes complete() on a dangling enable_completion pointer which leads to a kernel crash.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-10-09 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68327",
                                "url": "https://ubuntu.com/security/CVE-2025-68327",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: renesas_usbhs: Fix synchronous external abort on unbind  A synchronous external abort occurs on the Renesas RZ/G3S SoC if unbind is executed after the configuration sequence described above:  modprobe usb_f_ecm modprobe libcomposite modprobe configfs cd /sys/kernel/config/usb_gadget mkdir -p g1 cd g1 echo \"0x1d6b\" > idVendor echo \"0x0104\" > idProduct mkdir -p strings/0x409 echo \"0123456789\" > strings/0x409/serialnumber echo \"Renesas.\" > strings/0x409/manufacturer echo \"Ethernet Gadget\" > strings/0x409/product mkdir -p functions/ecm.usb0 mkdir -p configs/c.1 mkdir -p configs/c.1/strings/0x409 echo \"ECM\" > configs/c.1/strings/0x409/configuration  if [ ! -L configs/c.1/ecm.usb0 ]; then         ln -s functions/ecm.usb0 configs/c.1 fi  echo 11e20000.usb > UDC echo 11e20000.usb > /sys/bus/platform/drivers/renesas_usbhs/unbind  The displayed trace is as follows:   Internal error: synchronous external abort: 0000000096000010 [#1] SMP  CPU: 0 UID: 0 PID: 188 Comm: sh Tainted: G M 6.17.0-rc7-next-20250922-00010-g41050493b2bd #55 PREEMPT  Tainted: [M]=MACHINE_CHECK  Hardware name: Renesas SMARC EVK version 2 based on r9a08g045s33 (DT)  pstate: 604000c5 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)  pc : usbhs_sys_function_pullup+0x10/0x40 [renesas_usbhs]  lr : usbhsg_update_pullup+0x3c/0x68 [renesas_usbhs]  sp : ffff8000838b3920  x29: ffff8000838b3920 x28: ffff00000d585780 x27: 0000000000000000  x26: 0000000000000000 x25: 0000000000000000 x24: ffff00000c3e3810  x23: ffff00000d5e5c80 x22: ffff00000d5e5d40 x21: 0000000000000000  x20: 0000000000000000 x19: ffff00000d5e5c80 x18: 0000000000000020  x17: 2e30303230316531 x16: 312d7968703a7968 x15: 3d454d414e5f4344  x14: 000000000000002c x13: 0000000000000000 x12: 0000000000000000  x11: ffff00000f358f38 x10: ffff00000f358db0 x9 : ffff00000b41f418  x8 : 0101010101010101 x7 : 7f7f7f7f7f7f7f7f x6 : fefefeff6364626d  x5 : 8080808000000000 x4 : 000000004b5ccb9d x3 : 0000000000000000  x2 : 0000000000000000 x1 : ffff800083790000 x0 : ffff00000d5e5c80  Call trace:  usbhs_sys_function_pullup+0x10/0x40 [renesas_usbhs] (P)  usbhsg_pullup+0x4c/0x7c [renesas_usbhs]  usb_gadget_disconnect_locked+0x48/0xd4  gadget_unbind_driver+0x44/0x114  device_remove+0x4c/0x80  device_release_driver_internal+0x1c8/0x224  device_release_driver+0x18/0x24  bus_remove_device+0xcc/0x10c  device_del+0x14c/0x404  usb_del_gadget+0x88/0xc0  usb_del_gadget_udc+0x18/0x30  usbhs_mod_gadget_remove+0x24/0x44 [renesas_usbhs]  usbhs_mod_remove+0x20/0x30 [renesas_usbhs]  usbhs_remove+0x98/0xdc [renesas_usbhs]  platform_remove+0x20/0x30  device_remove+0x4c/0x80  device_release_driver_internal+0x1c8/0x224  device_driver_detach+0x18/0x24  unbind_store+0xb4/0xb8  drv_attr_store+0x24/0x38  sysfs_kf_write+0x7c/0x94  kernfs_fop_write_iter+0x128/0x1b8  vfs_write+0x2ac/0x350  ksys_write+0x68/0xfc  __arm64_sys_write+0x1c/0x28  invoke_syscall+0x48/0x110  el0_svc_common.constprop.0+0xc0/0xe0  do_el0_svc+0x1c/0x28  el0_svc+0x34/0xf0  el0t_64_sync_handler+0xa0/0xe4  el0t_64_sync+0x198/0x19c  Code: 7100003f 1a9f07e1 531c6c22 f9400001 (79400021)  ---[ end trace 0000000000000000 ]---  note: sh[188] exited with irqs disabled  note: sh[188] exited with preempt_count 1  The issue occurs because usbhs_sys_function_pullup(), which accesses the IP registers, is executed after the USBHS clocks have been disabled. The problem is reproducible on the Renesas RZ/G3S SoC starting with the addition of module stop in the clock enable/disable APIs. With module stop functionality enabled, a bus error is expected if a master accesses a module whose clock has been stopped and module stop activated.  Disable the IP clocks at the end of remove.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68295",
                                "url": "https://ubuntu.com/security/CVE-2025-68295",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb: client: fix memory leak in cifs_construct_tcon()  When having a multiuser mount with domain= specified and using cifscreds, cifs_set_cifscreds() will end up setting @ctx->domainname, so it needs to be freed before leaving cifs_construct_tcon().  This fixes the following memory leak reported by kmemleak:    mount.cifs //srv/share /mnt -o domain=ZELDA,multiuser,...   su - testuser   cifscreds add -d ZELDA -u testuser   ...   ls /mnt/1   ...   umount /mnt   echo scan > /sys/kernel/debug/kmemleak   cat /sys/kernel/debug/kmemleak   unreferenced object 0xffff8881203c3f08 (size 8):     comm \"ls\", pid 5060, jiffies 4307222943     hex dump (first 8 bytes):       5a 45 4c 44 41 00 cc cc                          ZELDA...     backtrace (crc d109a8cf):       __kmalloc_node_track_caller_noprof+0x572/0x710       kstrdup+0x3a/0x70       cifs_sb_tlink+0x1209/0x1770 [cifs]       cifs_get_fattr+0xe1/0xf50 [cifs]       cifs_get_inode_info+0xb5/0x240 [cifs]       cifs_revalidate_dentry_attr+0x2d1/0x470 [cifs]       cifs_getattr+0x28e/0x450 [cifs]       vfs_getattr_nosec+0x126/0x180       vfs_statx+0xf6/0x220       do_statx+0xab/0x110       __x64_sys_statx+0xd5/0x130       do_syscall_64+0xbb/0x380       entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68227",
                                "url": "https://ubuntu.com/security/CVE-2025-68227",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: Fix proto fallback detection with BPF  The sockmap feature allows bpf syscall from userspace, or based on bpf sockops, replacing the sk_prot of sockets during protocol stack processing with sockmap's custom read/write interfaces. ''' tcp_rcv_state_process()   syn_recv_sock()/subflow_syn_recv_sock()     tcp_init_transfer(BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB)       bpf_skops_established       <== sockops         bpf_sock_map_update(sk)   <== call bpf helper           tcp_bpf_update_proto()  <== update sk_prot '''  When the server has MPTCP enabled but the client sends a TCP SYN without MPTCP, subflow_syn_recv_sock() performs a fallback on the subflow, replacing the subflow sk's sk_prot with the native sk_prot. ''' subflow_syn_recv_sock()   subflow_ulp_fallback()     subflow_drop_ctx()       mptcp_subflow_ops_undo_override() '''  Then, this subflow can be normally used by sockmap, which replaces the native sk_prot with sockmap's custom sk_prot. The issue occurs when the user executes accept::mptcp_stream_accept::mptcp_fallback_tcp_ops(). Here, it uses sk->sk_prot to compare with the native sk_prot, but this is incorrect when sockmap is used, as we may incorrectly set sk->sk_socket->ops.  This fix uses the more generic sk_family for the comparison instead.  Additionally, this also prevents a WARNING from occurring:  result from ./scripts/decode_stacktrace.sh: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 337 at net/mptcp/protocol.c:68 mptcp_stream_accept \\ (net/mptcp/protocol.c:4005) Modules linked in: ...  PKRU: 55555554 Call Trace: <TASK> do_accept (net/socket.c:1989) __sys_accept4 (net/socket.c:2028 net/socket.c:2057) __x64_sys_accept (net/socket.c:2067) x64_sys_call (arch/x86/entry/syscall_64.c:41) do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) RIP: 0033:0x7f87ac92b83d  ---[ end trace 0000000000000000 ]---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68284",
                                "url": "https://ubuntu.com/security/CVE-2025-68284",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: prevent potential out-of-bounds writes in handle_auth_session_key()  The len field originates from untrusted network packets. Boundary checks have been added to prevent potential out-of-bounds writes when decrypting the connection secret or processing service tickets.  [ idryomov: changelog ]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68285",
                                "url": "https://ubuntu.com/security/CVE-2025-68285",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: fix potential use-after-free in have_mon_and_osd_map()  The wait loop in __ceph_open_session() can race with the client receiving a new monmap or osdmap shortly after the initial map is received.  Both ceph_monc_handle_map() and handle_one_map() install a new map immediately after freeing the old one      kfree(monc->monmap);     monc->monmap = monmap;      ceph_osdmap_destroy(osdc->osdmap);     osdc->osdmap = newmap;  under client->monc.mutex and client->osdc.lock respectively, but because neither is taken in have_mon_and_osd_map() it's possible for client->monc.monmap->epoch and client->osdc.osdmap->epoch arms in      client->monc.monmap && client->monc.monmap->epoch &&         client->osdc.osdmap && client->osdc.osdmap->epoch;  condition to dereference an already freed map.  This happens to be reproducible with generic/395 and generic/397 with KASAN enabled:      BUG: KASAN: slab-use-after-free in have_mon_and_osd_map+0x56/0x70     Read of size 4 at addr ffff88811012d810 by task mount.ceph/13305     CPU: 2 UID: 0 PID: 13305 Comm: mount.ceph Not tainted 6.14.0-rc2-build2+ #1266     ...     Call Trace:     <TASK>     have_mon_and_osd_map+0x56/0x70     ceph_open_session+0x182/0x290     ceph_get_tree+0x333/0x680     vfs_get_tree+0x49/0x180     do_new_mount+0x1a3/0x2d0     path_mount+0x6dd/0x730     do_mount+0x99/0xe0     __do_sys_mount+0x141/0x180     do_syscall_64+0x9f/0x100     entry_SYSCALL_64_after_hwframe+0x76/0x7e     </TASK>      Allocated by task 13305:     ceph_osdmap_alloc+0x16/0x130     ceph_osdc_init+0x27a/0x4c0     ceph_create_client+0x153/0x190     create_fs_client+0x50/0x2a0     ceph_get_tree+0xff/0x680     vfs_get_tree+0x49/0x180     do_new_mount+0x1a3/0x2d0     path_mount+0x6dd/0x730     do_mount+0x99/0xe0     __do_sys_mount+0x141/0x180     do_syscall_64+0x9f/0x100     entry_SYSCALL_64_after_hwframe+0x76/0x7e      Freed by task 9475:     kfree+0x212/0x290     handle_one_map+0x23c/0x3b0     ceph_osdc_handle_map+0x3c9/0x590     mon_dispatch+0x655/0x6f0     ceph_con_process_message+0xc3/0xe0     ceph_con_v1_try_read+0x614/0x760     ceph_con_workfn+0x2de/0x650     process_one_work+0x486/0x7c0     process_scheduled_works+0x73/0x90     worker_thread+0x1c8/0x2a0     kthread+0x2ec/0x300     ret_from_fork+0x24/0x40     ret_from_fork_asm+0x1a/0x30  Rewrite the wait loop to check the above condition directly with client->monc.mutex and client->osdc.lock taken as appropriate.  While at it, improve the timeout handling (previously mount_timeout could be exceeded in case wait_event_interruptible_timeout() slept more than once) and access client->auth_err under client->monc.mutex to match how it's set in finish_auth().  monmap_show() and osdmap_show() now take the respective lock before accessing the map as well.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68286",
                                "url": "https://ubuntu.com/security/CVE-2025-68286",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/display: Check NULL before accessing  [WHAT] IGT kms_cursor_legacy's long-nonblocking-modeset-vs-cursor-atomic fails with NULL pointer dereference. This can be reproduced with both an eDP panel and a DP monitors connected.   BUG: kernel NULL pointer dereference, address: 0000000000000000  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page  PGD 0 P4D 0  Oops: Oops: 0000 [#1] SMP NOPTI  CPU: 13 UID: 0 PID: 2960 Comm: kms_cursor_lega Not tainted 6.16.0-99-custom #8 PREEMPT(voluntary)  Hardware name: AMD ........  RIP: 0010:dc_stream_get_scanoutpos+0x34/0x130 [amdgpu]  Code: 57 4d 89 c7 41 56 49 89 ce 41 55 49 89 d5 41 54 49  89 fc 53 48 83 ec 18 48 8b 87 a0 64 00 00 48 89 75 d0 48 c7 c6 e0 41 30  c2 <48> 8b 38 48 8b 9f 68 06 00 00 e8 8d d7 fd ff 31 c0 48 81 c3 e0 02  RSP: 0018:ffffd0f3c2bd7608 EFLAGS: 00010292  RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffd0f3c2bd7668  RDX: ffffd0f3c2bd7664 RSI: ffffffffc23041e0 RDI: ffff8b32494b8000  RBP: ffffd0f3c2bd7648 R08: ffffd0f3c2bd766c R09: ffffd0f3c2bd7760  R10: ffffd0f3c2bd7820 R11: 0000000000000000 R12: ffff8b32494b8000  R13: ffffd0f3c2bd7664 R14: ffffd0f3c2bd7668 R15: ffffd0f3c2bd766c  FS:  000071f631b68700(0000) GS:ffff8b399f114000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000000 CR3: 00000001b8105000 CR4: 0000000000f50ef0  PKRU: 55555554  Call Trace:  <TASK>  dm_crtc_get_scanoutpos+0xd7/0x180 [amdgpu]  amdgpu_display_get_crtc_scanoutpos+0x86/0x1c0 [amdgpu]  ? __pfx_amdgpu_crtc_get_scanout_position+0x10/0x10[amdgpu]  amdgpu_crtc_get_scanout_position+0x27/0x50 [amdgpu]  drm_crtc_vblank_helper_get_vblank_timestamp_internal+0xf7/0x400  drm_crtc_vblank_helper_get_vblank_timestamp+0x1c/0x30  drm_crtc_get_last_vbltimestamp+0x55/0x90  drm_crtc_next_vblank_start+0x45/0xa0  drm_atomic_helper_wait_for_fences+0x81/0x1f0  ...  (cherry picked from commit 621e55f1919640acab25383362b96e65f2baea3c)",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68287",
                                "url": "https://ubuntu.com/security/CVE-2025-68287",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: dwc3: Fix race condition between concurrent dwc3_remove_requests() call paths  This patch addresses a race condition caused by unsynchronized execution of multiple call paths invoking `dwc3_remove_requests()`, leading to premature freeing of USB requests and subsequent crashes.  Three distinct execution paths interact with `dwc3_remove_requests()`: Path 1: Triggered via `dwc3_gadget_reset_interrupt()` during USB reset handling. The call stack includes: - `dwc3_ep0_reset_state()` - `dwc3_ep0_stall_and_restart()` - `dwc3_ep0_out_start()` - `dwc3_remove_requests()` - `dwc3_gadget_del_and_unmap_request()`  Path 2: Also initiated from `dwc3_gadget_reset_interrupt()`, but through `dwc3_stop_active_transfers()`. The call stack includes: - `dwc3_stop_active_transfers()` - `dwc3_remove_requests()` - `dwc3_gadget_del_and_unmap_request()`  Path 3: Occurs independently during `adb root` execution, which triggers USB function unbind and bind operations. The sequence includes: - `gserial_disconnect()` - `usb_ep_disable()` - `dwc3_gadget_ep_disable()` - `dwc3_remove_requests()` with `-ESHUTDOWN` status  Path 3 operates asynchronously and lacks synchronization with Paths 1 and 2. When Path 3 completes, it disables endpoints and frees 'out' requests. If Paths 1 or 2 are still processing these requests, accessing freed memory leads to a crash due to use-after-free conditions.  To fix this added check for request completion and skip processing if already completed and added the request status for ep0 while queue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68331",
                                "url": "https://ubuntu.com/security/CVE-2025-68331",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: uas: fix urb unmapping issue when the uas device is remove during ongoing data transfer  When a UAS device is unplugged during data transfer, there is a probability of a system panic occurring. The root cause is an access to an invalid memory address during URB callback handling. Specifically, this happens when the dma_direct_unmap_sg() function is called within the usb_hcd_unmap_urb_for_dma() interface, but the sg->dma_address field is 0 and the sg data structure has already been freed.  The SCSI driver sends transfer commands by invoking uas_queuecommand_lck() in uas.c, using the uas_submit_urbs() function to submit requests to USB. Within the uas_submit_urbs() implementation, three URBs (sense_urb, data_urb, and cmd_urb) are sequentially submitted. Device removal may occur at any point during uas_submit_urbs execution, which may result in URB submission failure. However, some URBs might have been successfully submitted before the failure, and uas_submit_urbs will return the -ENODEV error code in this case. The current error handling directly calls scsi_done(). In the SCSI driver, this eventually triggers scsi_complete() to invoke scsi_end_request() for releasing the sgtable. The successfully submitted URBs, when being unlinked to giveback, call usb_hcd_unmap_urb_for_dma() in hcd.c, leading to exceptions during sg unmapping operations since the sg data structure has already been freed.  This patch modifies the error condition check in the uas_submit_urbs() function. When a UAS device is removed but one or more URBs have already been successfully submitted to USB, it avoids immediately invoking scsi_done() and save the cmnd to devinfo->cmnd array. If the successfully submitted URBs is completed before devinfo->resetting being set, then the scsi_done() function will be called within uas_try_complete() after all pending URB operations are finalized. Otherwise, the scsi_done() function will be called within uas_zap_pending(), which is executed after usb_kill_anchored_urbs().  The error handling only takes effect when uas_queuecommand_lck() calls uas_submit_urbs() and returns the error value -ENODEV . In this case, the device is disconnected, and the flow proceeds to uas_disconnect(), where uas_zap_pending() is invoked to call uas_try_complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40345",
                                "url": "https://ubuntu.com/security/CVE-2025-40345",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: storage: sddr55: Reject out-of-bound new_pba  Discovered by Atuin - Automated Vulnerability Discovery Engine.  new_pba comes from the status packet returned after each write. A bogus device could report values beyond the block count derived from info->capacity, letting the driver walk off the end of pba_to_lba[] and corrupt heap memory.  Reject PBAs that exceed the computed block count and fail the transfer so we avoid touching out-of-range mapping entries.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-12 18:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68288",
                                "url": "https://ubuntu.com/security/CVE-2025-68288",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: storage: Fix memory leak in USB bulk transport  A kernel memory leak was identified by the 'ioctl_sg01' test from Linux Test Project (LTP). The following bytes were mainly observed: 0x53425355.  When USB storage devices incorrectly skip the data phase with status data, the code extracts/validates the CSW from the sg buffer, but fails to clear it afterwards. This leaves status protocol data in srb's transfer buffer, such as the US_BULK_CS_SIGN 'USBS' signature observed here. Thus, this can lead to USB protocols leaks to user space through SCSI generic (/dev/sg*) interfaces, such as the one seen here when the LTP test requested 512 KiB.  Fix the leak by zeroing the CSW data in srb's transfer buffer immediately after the validation of devices that skip data phase.  Note: Differently from CVE-2018-1000204, which fixed a big leak by zero- ing pages at allocation time, this leak occurs after allocation, when USB protocol data is written to already-allocated sg pages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68289",
                                "url": "https://ubuntu.com/security/CVE-2025-68289",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: f_eem: Fix memory leak in eem_unwrap  The existing code did not handle the failure case of usb_ep_queue in the command path, potentially leading to memory leaks.  Improve error handling to free all allocated resources on usb_ep_queue failure. This patch continues to use goto logic for error handling, as the existing error handling is complex and not easily adaptable to auto-cleanup helpers.  kmemleak results:   unreferenced object 0xffffff895a512300 (size 240):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       kmem_cache_alloc+0x1b4/0x358       skb_clone+0x90/0xd8       eem_unwrap+0x1cc/0x36c   unreferenced object 0xffffff8a157f4000 (size 256):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       kmalloc_trace+0x48/0x140       dwc3_gadget_ep_alloc_request+0x58/0x11c       usb_ep_alloc_request+0x40/0xe4       eem_unwrap+0x204/0x36c   unreferenced object 0xffffff8aadbaac00 (size 128):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       __kmalloc+0x64/0x1a8       eem_unwrap+0x218/0x36c   unreferenced object 0xffffff89ccef3500 (size 64):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       kmalloc_trace+0x48/0x140       eem_unwrap+0x238/0x36c",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68290",
                                "url": "https://ubuntu.com/security/CVE-2025-68290",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  most: usb: fix double free on late probe failure  The MOST subsystem has a non-standard registration function which frees the interface on registration failures and on deregistration.  This unsurprisingly leads to bugs in the MOST drivers, and a couple of recent changes turned a reference underflow and use-after-free in the USB driver into several double free and a use-after-free on late probe failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68328",
                                "url": "https://ubuntu.com/security/CVE-2025-68328",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  firmware: stratix10-svc: fix bug in saving controller data  Fix the incorrect usage of platform_set_drvdata and dev_set_drvdata. They both are of the same data and overrides each other. This resulted in the rmmod of the svc driver to fail and throw a kernel panic for kthread_stop and fifo free.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68339",
                                "url": "https://ubuntu.com/security/CVE-2025-68339",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  atm/fore200e: Fix possible data race in fore200e_open()  Protect access to fore200e->available_cell_rate with rate_mtx lock in the error handling path of fore200e_open() to prevent a data race.  The field fore200e->available_cell_rate is a shared resource used to track available bandwidth. It is concurrently accessed by fore200e_open(), fore200e_close(), and fore200e_change_qos().  In fore200e_open(), the lock rate_mtx is correctly held when subtracting vcc->qos.txtp.max_pcr from available_cell_rate to reserve bandwidth. However, if the subsequent call to fore200e_activate_vcin() fails, the function restores the reserved bandwidth by adding back to available_cell_rate without holding the lock.  This introduces a race condition because available_cell_rate is a global device resource shared across all VCCs. If the error path in fore200e_open() executes concurrently with operations like fore200e_close() or fore200e_change_qos() on other VCCs, a read-modify-write race occurs.  Specifically, the error path reads the rate without the lock. If another CPU acquires the lock and modifies the rate (e.g., releasing bandwidth in fore200e_close()) between this read and the subsequent write, the error path will overwrite the concurrent update with a stale value. This results in incorrect bandwidth accounting.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-23 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68330",
                                "url": "https://ubuntu.com/security/CVE-2025-68330",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: accel: bmc150: Fix irq assumption regression  The code in bmc150-accel-core.c unconditionally calls bmc150_accel_set_interrupt() in the iio_buffer_setup_ops, such as on the runtime PM resume path giving a kernel splat like this if the device has no interrupts:  Unable to handle kernel NULL pointer dereference at virtual   address 00000001 when read  PC is at bmc150_accel_set_interrupt+0x98/0x194 LR is at __pm_runtime_resume+0x5c/0x64 (...) Call trace: bmc150_accel_set_interrupt from bmc150_accel_buffer_postenable+0x40/0x108 bmc150_accel_buffer_postenable from __iio_update_buffers+0xbe0/0xcbc __iio_update_buffers from enable_store+0x84/0xc8 enable_store from kernfs_fop_write_iter+0x154/0x1b4  This bug seems to have been in the driver since the beginning, but it only manifests recently, I do not know why.  Store the IRQ number in the state struct, as this is a common pattern in other drivers, then use this to determine if we have IRQ support or not.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68301",
                                "url": "https://ubuntu.com/security/CVE-2025-68301",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: atlantic: fix fragment overflow handling in RX path  The atlantic driver can receive packets with more than MAX_SKB_FRAGS (17) fragments when handling large multi-descriptor packets. This causes an out-of-bounds write in skb_add_rx_frag_netmem() leading to kernel panic.  The issue occurs because the driver doesn't check the total number of fragments before calling skb_add_rx_frag(). When a packet requires more than MAX_SKB_FRAGS fragments, the fragment index exceeds the array bounds.  Fix by assuming there will be an extra frag if buff->len > AQ_CFG_RX_HDR_SIZE, then all fragments are accounted for. And reusing the existing check to prevent the overflow earlier in the code path.  This crash occurred in production with an Aquantia AQC113 10G NIC.  Stack trace from production environment: ``` RIP: 0010:skb_add_rx_frag_netmem+0x29/0xd0 Code: 90 f3 0f 1e fa 0f 1f 44 00 00 48 89 f8 41 89 ca 48 89 d7 48 63 ce 8b 90 c0 00 00 00 48 c1 e1 04 48 01 ca 48 03 90 c8 00 00 00 <48> 89 7a 30 44 89 52 3c 44 89 42 38 40 f6 c7 01 75 74 48 89 fa 83 RSP: 0018:ffffa9bec02a8d50 EFLAGS: 00010287 RAX: ffff925b22e80a00 RBX: ffff925ad38d2700 RCX: fffffffe0a0c8000 RDX: ffff9258ea95bac0 RSI: ffff925ae0a0c800 RDI: 0000000000037a40 RBP: 0000000000000024 R08: 0000000000000000 R09: 0000000000000021 R10: 0000000000000848 R11: 0000000000000000 R12: ffffa9bec02a8e24 R13: ffff925ad8615570 R14: 0000000000000000 R15: ffff925b22e80a00 FS: 0000000000000000(0000) GS:ffff925e47880000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffff9258ea95baf0 CR3: 0000000166022004 CR4: 0000000000f72ef0 PKRU: 55555554 Call Trace: <IRQ> aq_ring_rx_clean+0x175/0xe60 [atlantic] ? aq_ring_rx_clean+0x14d/0xe60 [atlantic] ? aq_ring_tx_clean+0xdf/0x190 [atlantic] ? kmem_cache_free+0x348/0x450 ? aq_vec_poll+0x81/0x1d0 [atlantic] ? __napi_poll+0x28/0x1c0 ? net_rx_action+0x337/0x420 ```  Changes in v4: - Add Fixes: tag to satisfy patch validation requirements.  Changes in v3: - Fix by assuming there will be an extra frag if buff->len > AQ_CFG_RX_HDR_SIZE,   then all fragments are accounted for.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68302",
                                "url": "https://ubuntu.com/security/CVE-2025-68302",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sxgbe: fix potential NULL dereference in sxgbe_rx()  Currently, when skb is null, the driver prints an error and then dereferences skb on the next line.  To fix this, let's add a 'break' after the error message to switch to sxgbe_rx_refill(), which is similar to the approach taken by the other drivers in this particular case, e.g. calxeda with xgmac_rx().  Found during a code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68303",
                                "url": "https://ubuntu.com/security/CVE-2025-68303",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: intel: punit_ipc: fix memory corruption  This passes the address of the pointer \"&punit_ipcdev\" when the intent was to pass the pointer itself \"punit_ipcdev\" (without the ampersand). This means that the:  \tcomplete(&ipcdev->cmd_complete);  in intel_punit_ioc() will write to a wrong memory address corrupting it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68308",
                                "url": "https://ubuntu.com/security/CVE-2025-68308",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: kvaser_usb: leaf: Fix potential infinite loop in command parsers  The `kvaser_usb_leaf_wait_cmd()` and `kvaser_usb_leaf_read_bulk_callback` functions contain logic to zero-length commands. These commands are used to align data to the USB endpoint's wMaxPacketSize boundary.  The driver attempts to skip these placeholders by aligning the buffer position `pos` to the next packet boundary using `round_up()` function.  However, if zero-length command is found exactly on a packet boundary (i.e., `pos` is a multiple of wMaxPacketSize, including 0), `round_up` function will return the unchanged value of `pos`. This prevents `pos` to be increased, causing an infinite loop in the parsing logic.  This patch fixes this in the function by using `pos + 1` instead. This ensures that even if `pos` is on a boundary, the calculation is based on `pos + 1`, forcing `round_up()` to always return the next aligned boundary.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40257",
                                "url": "https://ubuntu.com/security/CVE-2025-40257",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fix a race in mptcp_pm_del_add_timer()  mptcp_pm_del_add_timer() can call sk_stop_timer_sync(sk, &entry->add_timer) while another might have free entry already, as reported by syzbot.  Add RCU protection to fix this issue.  Also change confusing add_timer variable with stop_timer boolean.  syzbot report:  BUG: KASAN: slab-use-after-free in __timer_delete_sync+0x372/0x3f0 kernel/time/timer.c:1616 Read of size 4 at addr ffff8880311e4150 by task kworker/1:1/44  CPU: 1 UID: 0 PID: 44 Comm: kworker/1:1 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 Workqueue: events mptcp_worker Call Trace:  <TASK>   dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120   print_address_description mm/kasan/report.c:378 [inline]   print_report+0xca/0x240 mm/kasan/report.c:482   kasan_report+0x118/0x150 mm/kasan/report.c:595   __timer_delete_sync+0x372/0x3f0 kernel/time/timer.c:1616   sk_stop_timer_sync+0x1b/0x90 net/core/sock.c:3631   mptcp_pm_del_add_timer+0x283/0x310 net/mptcp/pm.c:362   mptcp_incoming_options+0x1357/0x1f60 net/mptcp/options.c:1174   tcp_data_queue+0xca/0x6450 net/ipv4/tcp_input.c:5361   tcp_rcv_established+0x1335/0x2670 net/ipv4/tcp_input.c:6441   tcp_v4_do_rcv+0x98b/0xbf0 net/ipv4/tcp_ipv4.c:1931   tcp_v4_rcv+0x252a/0x2dc0 net/ipv4/tcp_ipv4.c:2374   ip_protocol_deliver_rcu+0x221/0x440 net/ipv4/ip_input.c:205   ip_local_deliver_finish+0x3bb/0x6f0 net/ipv4/ip_input.c:239   NF_HOOK+0x30c/0x3a0 include/linux/netfilter.h:318   NF_HOOK+0x30c/0x3a0 include/linux/netfilter.h:318   __netif_receive_skb_one_core net/core/dev.c:6079 [inline]   __netif_receive_skb+0x143/0x380 net/core/dev.c:6192   process_backlog+0x31e/0x900 net/core/dev.c:6544   __napi_poll+0xb6/0x540 net/core/dev.c:7594   napi_poll net/core/dev.c:7657 [inline]   net_rx_action+0x5f7/0xda0 net/core/dev.c:7784   handle_softirqs+0x22f/0x710 kernel/softirq.c:622   __do_softirq kernel/softirq.c:656 [inline]   __local_bh_enable_ip+0x1a0/0x2e0 kernel/softirq.c:302   mptcp_pm_send_ack net/mptcp/pm.c:210 [inline]  mptcp_pm_addr_send_ack+0x41f/0x500 net/mptcp/pm.c:-1   mptcp_pm_worker+0x174/0x320 net/mptcp/pm.c:1002   mptcp_worker+0xd5/0x1170 net/mptcp/protocol.c:2762   process_one_work kernel/workqueue.c:3263 [inline]   process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3346   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3427   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 44:   kasan_save_stack mm/kasan/common.c:56 [inline]   kasan_save_track+0x3e/0x80 mm/kasan/common.c:77   poison_kmalloc_redzone mm/kasan/common.c:400 [inline]   __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:417   kasan_kmalloc include/linux/kasan.h:262 [inline]   __kmalloc_cache_noprof+0x1ef/0x6c0 mm/slub.c:5748   kmalloc_noprof include/linux/slab.h:957 [inline]   mptcp_pm_alloc_anno_list+0x104/0x460 net/mptcp/pm.c:385   mptcp_pm_create_subflow_or_signal_addr+0xf9d/0x1360 net/mptcp/pm_kernel.c:355   mptcp_pm_nl_fully_established net/mptcp/pm_kernel.c:409 [inline]   __mptcp_pm_kernel_worker+0x417/0x1ef0 net/mptcp/pm_kernel.c:1529   mptcp_pm_worker+0x1ee/0x320 net/mptcp/pm.c:1008   mptcp_worker+0xd5/0x1170 net/mptcp/protocol.c:2762   process_one_work kernel/workqueue.c:3263 [inline]   process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3346   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3427   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  Freed by task 6630:   kasan_save_stack mm/kasan/common.c:56 [inline]   kasan_save_track+0x3e/0x80 mm/kasan/common.c:77   __kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:587   kasan_save_free_info mm/kasan/kasan.h:406 [inline]   poison_slab_object m ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68217",
                                "url": "https://ubuntu.com/security/CVE-2025-68217",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: pegasus-notetaker - fix potential out-of-bounds access  In the pegasus_notetaker driver, the pegasus_probe() function allocates the URB transfer buffer using the wMaxPacketSize value from the endpoint descriptor. An attacker can use a malicious USB descriptor to force the allocation of a very small buffer.  Subsequently, if the device sends an interrupt packet with a specific pattern (e.g., where the first byte is 0x80 or 0x42), the pegasus_parse_packet() function parses the packet without checking the allocated buffer size. This leads to an out-of-bounds memory access.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68204",
                                "url": "https://ubuntu.com/security/CVE-2025-68204",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: arm: scmi: Fix genpd leak on provider registration failure  If of_genpd_add_provider_onecell() fails during probe, the previously created generic power domains are not removed, leading to a memory leak and potential kernel crash later in genpd_debug_add().  Add proper error handling to unwind the initialized domains before returning from probe to ensure all resources are correctly released on failure.  Example crash trace observed without this fix:    | Unable to handle kernel paging request at virtual address fffffffffffffc70   | CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.18.0-rc1 #405 PREEMPT   | Hardware name: ARM LTD ARM Juno Development Platform/ARM Juno Development Platform   | pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)   | pc : genpd_debug_add+0x2c/0x160   | lr : genpd_debug_init+0x74/0x98   | Call trace:   |  genpd_debug_add+0x2c/0x160 (P)   |  genpd_debug_init+0x74/0x98   |  do_one_initcall+0xd0/0x2d8   |  do_initcall_level+0xa0/0x140   |  do_initcalls+0x60/0xa8   |  do_basic_setup+0x28/0x40   |  kernel_init_freeable+0xe8/0x170   |  kernel_init+0x2c/0x140   |  ret_from_fork+0x10/0x20",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68245",
                                "url": "https://ubuntu.com/security/CVE-2025-68245",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: netpoll: fix incorrect refcount handling causing incorrect cleanup  commit efa95b01da18 (\"netpoll: fix use after free\") incorrectly ignored the refcount and prematurely set dev->npinfo to NULL during netpoll cleanup, leading to improper behavior and memory leaks.  Scenario causing lack of proper cleanup:  1) A netpoll is associated with a NIC (e.g., eth0) and netdev->npinfo is    allocated, and refcnt = 1    - Keep in mind that npinfo is shared among all netpoll instances. In      this case, there is just one.  2) Another netpoll is also associated with the same NIC and    npinfo->refcnt += 1.    - Now dev->npinfo->refcnt = 2;    - There is just one npinfo associated to the netdev.  3) When the first netpolls goes to clean up:    - The first cleanup succeeds and clears np->dev->npinfo, ignoring      refcnt.      - It basically calls `RCU_INIT_POINTER(np->dev->npinfo, NULL);`    - Set dev->npinfo = NULL, without proper cleanup    - No ->ndo_netpoll_cleanup() is either called  4) Now the second target tries to clean up    - The second cleanup fails because np->dev->npinfo is already NULL.      * In this case, ops->ndo_netpoll_cleanup() was never called, and        the skb pool is not cleaned as well (for the second netpoll        instance)   - This leaks npinfo and skbpool skbs, which is clearly reported by     kmemleak.  Revert commit efa95b01da18 (\"netpoll: fix use after free\") and adds clarifying comments emphasizing that npinfo cleanup should only happen once the refcount reaches zero, ensuring stable and correct netpoll behavior.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-37354",
                                "url": "https://ubuntu.com/security/CVE-2024-37354",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix crash on racing fsync and size-extending write into prealloc  We have been seeing crashes on duplicate keys in btrfs_set_item_key_safe():    BTRFS critical (device vdb): slot 4 key (450 108 8192) new key (450 108 8192)   ------------[ cut here ]------------   kernel BUG at fs/btrfs/ctree.c:2620!   invalid opcode: 0000 [#1] PREEMPT SMP PTI   CPU: 0 PID: 3139 Comm: xfs_io Kdump: loaded Not tainted 6.9.0 #6   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014   RIP: 0010:btrfs_set_item_key_safe+0x11f/0x290 [btrfs]  With the following stack trace:    #0  btrfs_set_item_key_safe (fs/btrfs/ctree.c:2620:4)   #1  btrfs_drop_extents (fs/btrfs/file.c:411:4)   #2  log_one_extent (fs/btrfs/tree-log.c:4732:9)   #3  btrfs_log_changed_extents (fs/btrfs/tree-log.c:4955:9)   #4  btrfs_log_inode (fs/btrfs/tree-log.c:6626:9)   #5  btrfs_log_inode_parent (fs/btrfs/tree-log.c:7070:8)   #6  btrfs_log_dentry_safe (fs/btrfs/tree-log.c:7171:8)   #7  btrfs_sync_file (fs/btrfs/file.c:1933:8)   #8  vfs_fsync_range (fs/sync.c:188:9)   #9  vfs_fsync (fs/sync.c:202:9)   #10 do_fsync (fs/sync.c:212:9)   #11 __do_sys_fdatasync (fs/sync.c:225:9)   #12 __se_sys_fdatasync (fs/sync.c:223:1)   #13 __x64_sys_fdatasync (fs/sync.c:223:1)   #14 do_syscall_x64 (arch/x86/entry/common.c:52:14)   #15 do_syscall_64 (arch/x86/entry/common.c:83:7)   #16 entry_SYSCALL_64+0xaf/0x14c (arch/x86/entry/entry_64.S:121)  So we're logging a changed extent from fsync, which is splitting an extent in the log tree. But this split part already exists in the tree, triggering the BUG().  This is the state of the log tree at the time of the crash, dumped with drgn (https://github.com/osandov/drgn/blob/main/contrib/btrfs_tree.py) to get more details than btrfs_print_leaf() gives us:    >>> print_extent_buffer(prog.crashed_thread().stack_trace()[0][\"eb\"])   leaf 33439744 level 0 items 72 generation 9 owner 18446744073709551610   leaf 33439744 flags 0x100000000000000   fs uuid e5bd3946-400c-4223-8923-190ef1f18677   chunk uuid d58cb17e-6d02-494a-829a-18b7d8a399da           item 0 key (450 INODE_ITEM 0) itemoff 16123 itemsize 160                   generation 7 transid 9 size 8192 nbytes 8473563889606862198                   block group 0 mode 100600 links 1 uid 0 gid 0 rdev 0                   sequence 204 flags 0x10(PREALLOC)                   atime 1716417703.220000000 (2024-05-22 15:41:43)                   ctime 1716417704.983333333 (2024-05-22 15:41:44)                   mtime 1716417704.983333333 (2024-05-22 15:41:44)                   otime 17592186044416.000000000 (559444-03-08 01:40:16)           item 1 key (450 INODE_REF 256) itemoff 16110 itemsize 13                   index 195 namelen 3 name: 193           item 2 key (450 XATTR_ITEM 1640047104) itemoff 16073 itemsize 37                   location key (0 UNKNOWN.0 0) type XATTR                   transid 7 data_len 1 name_len 6                   name: user.a                   data a           item 3 key (450 EXTENT_DATA 0) itemoff 16020 itemsize 53                   generation 9 type 1 (regular)                   extent data disk byte 303144960 nr 12288                   extent data offset 0 nr 4096 ram 12288                   extent compression 0 (none)           item 4 key (450 EXTENT_DATA 4096) itemoff 15967 itemsize 53                   generation 9 type 2 (prealloc)                   prealloc data disk byte 303144960 nr 12288                   prealloc data offset 4096 nr 8192           item 5 key (450 EXTENT_DATA 8192) itemoff 15914 itemsize 53                   generation 9 type 2 (prealloc)                   prealloc data disk byte 303144960 nr 12288                   prealloc data offset 8192 nr 4096   ...  So the real problem happened earlier: notice that items 4 (4k-12k) and 5 (8k-12k) overlap. Both are prealloc extents. Item 4 straddles i_size and item 5 starts at i_size.  Here is the state of ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-06-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68220",
                                "url": "https://ubuntu.com/security/CVE-2025-68220",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: ethernet: ti: netcp: Standardize knav_dma_open_channel to return NULL on error  Make knav_dma_open_channel consistently return NULL on error instead of ERR_PTR. Currently the header include/linux/soc/ti/knav_dma.h returns NULL when the driver is disabled, but the driver implementation does not even return NULL or ERR_PTR on failure, causing inconsistency in the users. This results in a crash in netcp_free_navigator_resources as followed (trimmed):  Unhandled fault: alignment exception (0x221) at 0xfffffff2 [fffffff2] *pgd=80000800207003, *pmd=82ffda003, *pte=00000000 Internal error: : 221 [#1] SMP ARM Modules linked in: CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.17.0-rc7 #1 NONE Hardware name: Keystone PC is at knav_dma_close_channel+0x30/0x19c LR is at netcp_free_navigator_resources+0x2c/0x28c  [... TRIM...]  Call trace:  knav_dma_close_channel from netcp_free_navigator_resources+0x2c/0x28c  netcp_free_navigator_resources from netcp_ndo_open+0x430/0x46c  netcp_ndo_open from __dev_open+0x114/0x29c  __dev_open from __dev_change_flags+0x190/0x208  __dev_change_flags from netif_change_flags+0x1c/0x58  netif_change_flags from dev_change_flags+0x38/0xa0  dev_change_flags from ip_auto_config+0x2c4/0x11f0  ip_auto_config from do_one_initcall+0x58/0x200  do_one_initcall from kernel_init_freeable+0x1cc/0x238  kernel_init_freeable from kernel_init+0x1c/0x12c  kernel_init from ret_from_fork+0x14/0x38 [... TRIM...]  Standardize the error handling by making the function return NULL on all error conditions. The API is used in just the netcp_core.c so the impact is limited.  Note, this change, in effect reverts commit 5b6cb43b4d62 (\"net: ethernet: ti: netcp_core: return error while dma channel open issue\"), but provides a less error prone implementation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40272",
                                "url": "https://ubuntu.com/security/CVE-2025-40272",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/secretmem: fix use-after-free race in fault handler  When a page fault occurs in a secret memory file created with `memfd_secret(2)`, the kernel will allocate a new folio for it, mark the underlying page as not-present in the direct map, and add it to the file mapping.  If two tasks cause a fault in the same page concurrently, both could end up allocating a folio and removing the page from the direct map, but only one would succeed in adding the folio to the file mapping.  The task that failed undoes the effects of its attempt by (a) freeing the folio again and (b) putting the page back into the direct map.  However, by doing these two operations in this order, the page becomes available to the allocator again before it is placed back in the direct mapping.  If another task attempts to allocate the page between (a) and (b), and the kernel tries to access it via the direct map, it would result in a supervisor not-present page fault.  Fix the ordering to restore the direct map before the folio is freed.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40248",
                                "url": "https://ubuntu.com/security/CVE-2025-40248",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock: Ignore signal/timeout on connect() if already established  During connect(), acting on a signal/timeout by disconnecting an already established socket leads to several issues:  1. connect() invoking vsock_transport_cancel_pkt() ->    virtio_transport_purge_skbs() may race with sendmsg() invoking    virtio_transport_get_credit(). This results in a permanently elevated    `vvs->bytes_unsent`. Which, in turn, confuses the SOCK_LINGER handling.  2. connect() resetting a connected socket's state may race with socket    being placed in a sockmap. A disconnected socket remaining in a sockmap    breaks sockmap's assumptions. And gives rise to WARNs.  3. connect() transitioning SS_CONNECTED -> SS_UNCONNECTED allows for a    transport change/drop after TCP_ESTABLISHED. Which poses a problem for    any simultaneous sendmsg() or connect() and may result in a    use-after-free/null-ptr-deref.  Do not disconnect socket on signal/timeout. Keep the logic for unconnected sockets: they don't linger, can't be placed in a sockmap, are rejected by sendmsg().  [1]: https://lore.kernel.org/netdev/e07fd95c-9a38-4eea-9638-133e38c2ec9b@rbox.co/ [2]: https://lore.kernel.org/netdev/20250317-vsock-trans-signal-race-v4-0-fc8837f3f1d4@rbox.co/ [3]: https://lore.kernel.org/netdev/60f1b7db-3099-4f6a-875e-af9f6ef194f6@rbox.co/",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40252",
                                "url": "https://ubuntu.com/security/CVE-2025-40252",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: qlogic/qede: fix potential out-of-bounds read in qede_tpa_cont() and qede_tpa_end()  The loops in 'qede_tpa_cont()' and 'qede_tpa_end()', iterate over 'cqe->len_list[]' using only a zero-length terminator as the stopping condition. If the terminator was missing or malformed, the loop could run past the end of the fixed-size array.  Add an explicit bound check using ARRAY_SIZE() in both loops to prevent a potential out-of-bounds access.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40253",
                                "url": "https://ubuntu.com/security/CVE-2025-40253",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  s390/ctcm: Fix double-kfree  The function 'mpc_rcvd_sweep_req(mpcginfo)' is called conditionally from function 'ctcmpc_unpack_skb'. It frees passed mpcginfo. After that a call to function 'kfree' in function 'ctcmpc_unpack_skb' frees it again.  Remove 'kfree' call in function 'mpc_rcvd_sweep_req(mpcginfo)'.  Bug detected by the clang static analyzer.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40254",
                                "url": "https://ubuntu.com/security/CVE-2025-40254",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: openvswitch: remove never-working support for setting nsh fields  The validation of the set(nsh(...)) action is completely wrong. It runs through the nsh_key_put_from_nlattr() function that is the same function that validates NSH keys for the flow match and the push_nsh() action.  However, the set(nsh(...)) has a very different memory layout.  Nested attributes in there are doubled in size in case of the masked set().  That makes proper validation impossible.  There is also confusion in the code between the 'masked' flag, that says that the nested attributes are doubled in size containing both the value and the mask, and the 'is_mask' that says that the value we're parsing is the mask.  This is causing kernel crash on trying to write into mask part of the match with SW_FLOW_KEY_PUT() during validation, while validate_nsh() doesn't allocate any memory for it:    BUG: kernel NULL pointer dereference, address: 0000000000000018   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 1c2383067 P4D 1c2383067 PUD 20b703067 PMD 0   Oops: Oops: 0000 [#1] SMP NOPTI   CPU: 8 UID: 0 Kdump: loaded Not tainted 6.17.0-rc4+ #107 PREEMPT(voluntary)   RIP: 0010:nsh_key_put_from_nlattr+0x19d/0x610 [openvswitch]   Call Trace:    <TASK>    validate_nsh+0x60/0x90 [openvswitch]    validate_set.constprop.0+0x270/0x3c0 [openvswitch]    __ovs_nla_copy_actions+0x477/0x860 [openvswitch]    ovs_nla_copy_actions+0x8d/0x100 [openvswitch]    ovs_packet_cmd_execute+0x1cc/0x310 [openvswitch]    genl_family_rcv_msg_doit+0xdb/0x130    genl_family_rcv_msg+0x14b/0x220    genl_rcv_msg+0x47/0xa0    netlink_rcv_skb+0x53/0x100    genl_rcv+0x24/0x40    netlink_unicast+0x280/0x3b0    netlink_sendmsg+0x1f7/0x430    ____sys_sendmsg+0x36b/0x3a0    ___sys_sendmsg+0x87/0xd0    __sys_sendmsg+0x6d/0xd0    do_syscall_64+0x7b/0x2c0    entry_SYSCALL_64_after_hwframe+0x76/0x7e  The third issue with this process is that while trying to convert the non-masked set into masked one, validate_set() copies and doubles the size of the OVS_KEY_ATTR_NSH as if it didn't have any nested attributes.  It should be copying each nested attribute and doubling them in size independently.  And the process must be properly reversed during the conversion back from masked to a non-masked variant during the flow dump.  In the end, the only two outcomes of trying to use this action are either validation failure or a kernel crash.  And if somehow someone manages to install a flow with such an action, it will most definitely not do what it is supposed to, since all the keys and the masks are mixed up.  Fixing all the issues is a complex task as it requires re-writing most of the validation code.  Given that and the fact that this functionality never worked since introduction, let's just remove it altogether.  It's better to re-introduce it later with a proper implementation instead of trying to fix it in stable releases.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40258",
                                "url": "https://ubuntu.com/security/CVE-2025-40258",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fix race condition in mptcp_schedule_work()  syzbot reported use-after-free in mptcp_schedule_work() [1]  Issue here is that mptcp_schedule_work() schedules a work, then gets a refcount on sk->sk_refcnt if the work was scheduled. This refcount will be released by mptcp_worker().  [A] if (schedule_work(...)) { [B]     sock_hold(sk);         return true;     }  Problem is that mptcp_worker() can run immediately and complete before [B]  We need instead :      sock_hold(sk);     if (schedule_work(...))         return true;     sock_put(sk);  [1] refcount_t: addition on 0; use-after-free.  WARNING: CPU: 1 PID: 29 at lib/refcount.c:25 refcount_warn_saturate+0xfa/0x1d0 lib/refcount.c:25 Call Trace:  <TASK>  __refcount_add include/linux/refcount.h:-1 [inline]   __refcount_inc include/linux/refcount.h:366 [inline]   refcount_inc include/linux/refcount.h:383 [inline]   sock_hold include/net/sock.h:816 [inline]   mptcp_schedule_work+0x164/0x1a0 net/mptcp/protocol.c:943   mptcp_tout_timer+0x21/0xa0 net/mptcp/protocol.c:2316   call_timer_fn+0x17e/0x5f0 kernel/time/timer.c:1747   expire_timers kernel/time/timer.c:1798 [inline]   __run_timers kernel/time/timer.c:2372 [inline]   __run_timer_base+0x648/0x970 kernel/time/timer.c:2384   run_timer_base kernel/time/timer.c:2393 [inline]   run_timer_softirq+0xb7/0x180 kernel/time/timer.c:2403   handle_softirqs+0x22f/0x710 kernel/softirq.c:622   __do_softirq kernel/softirq.c:656 [inline]   run_ktimerd+0xcf/0x190 kernel/softirq.c:1138   smpboot_thread_fn+0x542/0xa60 kernel/smpboot.c:160   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68229",
                                "url": "https://ubuntu.com/security/CVE-2025-68229",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: tcm_loop: Fix segfault in tcm_loop_tpg_address_show()  If the allocation of tl_hba->sh fails in tcm_loop_driver_probe() and we attempt to dereference it in tcm_loop_tpg_address_show() we will get a segfault, see below for an example. So, check tl_hba->sh before dereferencing it.    Unable to allocate struct scsi_host   BUG: kernel NULL pointer dereference, address: 0000000000000194   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 0 P4D 0   Oops: 0000 [#1] PREEMPT SMP NOPTI   CPU: 1 PID: 8356 Comm: tokio-runtime-w Not tainted 6.6.104.2-4.azl3 #1   Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.1 09/28/2024   RIP: 0010:tcm_loop_tpg_address_show+0x2e/0x50 [tcm_loop] ...   Call Trace:    <TASK>    configfs_read_iter+0x12d/0x1d0 [configfs]    vfs_read+0x1b5/0x300    ksys_read+0x6f/0xf0 ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40259",
                                "url": "https://ubuntu.com/security/CVE-2025-40259",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: sg: Do not sleep in atomic context  sg_finish_rem_req() calls blk_rq_unmap_user(). The latter function may sleep. Hence, call sg_finish_rem_req() with interrupts enabled instead of disabled.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40261",
                                "url": "https://ubuntu.com/security/CVE-2025-40261",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()  nvme_fc_delete_assocation() waits for pending I/O to complete before returning, and an error can cause ->ioerr_work to be queued after cancel_work_sync() had been called.  Move the call to cancel_work_sync() to be after nvme_fc_delete_association() to ensure ->ioerr_work is not running when the nvme_fc_ctrl object is freed.  Otherwise the following can occur:  [ 1135.911754] list_del corruption, ff2d24c8093f31f8->next is NULL [ 1135.917705] ------------[ cut here ]------------ [ 1135.922336] kernel BUG at lib/list_debug.c:52! [ 1135.926784] Oops: invalid opcode: 0000 [#1] SMP NOPTI [ 1135.931851] CPU: 48 UID: 0 PID: 726 Comm: kworker/u449:23 Kdump: loaded Not tainted 6.12.0 #1 PREEMPT(voluntary) [ 1135.943490] Hardware name: Dell Inc. PowerEdge R660/0HGTK9, BIOS 2.5.4 01/16/2025 [ 1135.950969] Workqueue:  0x0 (nvme-wq) [ 1135.954673] RIP: 0010:__list_del_entry_valid_or_report.cold+0xf/0x6f [ 1135.961041] Code: c7 c7 98 68 72 94 e8 26 45 fe ff 0f 0b 48 c7 c7 70 68 72 94 e8 18 45 fe ff 0f 0b 48 89 fe 48 c7 c7 80 69 72 94 e8 07 45 fe ff <0f> 0b 48 89 d1 48 c7 c7 a0 6a 72 94 48 89 c2 e8 f3 44 fe ff 0f 0b [ 1135.979788] RSP: 0018:ff579b19482d3e50 EFLAGS: 00010046 [ 1135.985015] RAX: 0000000000000033 RBX: ff2d24c8093f31f0 RCX: 0000000000000000 [ 1135.992148] RDX: 0000000000000000 RSI: ff2d24d6bfa1d0c0 RDI: ff2d24d6bfa1d0c0 [ 1135.999278] RBP: ff2d24c8093f31f8 R08: 0000000000000000 R09: ffffffff951e2b08 [ 1136.006413] R10: ffffffff95122ac8 R11: 0000000000000003 R12: ff2d24c78697c100 [ 1136.013546] R13: fffffffffffffff8 R14: 0000000000000000 R15: ff2d24c78697c0c0 [ 1136.020677] FS:  0000000000000000(0000) GS:ff2d24d6bfa00000(0000) knlGS:0000000000000000 [ 1136.028765] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1136.034510] CR2: 00007fd207f90b80 CR3: 000000163ea22003 CR4: 0000000000f73ef0 [ 1136.041641] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 1136.048776] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400 [ 1136.055910] PKRU: 55555554 [ 1136.058623] Call Trace: [ 1136.061074]  <TASK> [ 1136.063179]  ? show_trace_log_lvl+0x1b0/0x2f0 [ 1136.067540]  ? show_trace_log_lvl+0x1b0/0x2f0 [ 1136.071898]  ? move_linked_works+0x4a/0xa0 [ 1136.075998]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.081744]  ? __die_body.cold+0x8/0x12 [ 1136.085584]  ? die+0x2e/0x50 [ 1136.088469]  ? do_trap+0xca/0x110 [ 1136.091789]  ? do_error_trap+0x65/0x80 [ 1136.095543]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.101289]  ? exc_invalid_op+0x50/0x70 [ 1136.105127]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.110874]  ? asm_exc_invalid_op+0x1a/0x20 [ 1136.115059]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.120806]  move_linked_works+0x4a/0xa0 [ 1136.124733]  worker_thread+0x216/0x3a0 [ 1136.128485]  ? __pfx_worker_thread+0x10/0x10 [ 1136.132758]  kthread+0xfa/0x240 [ 1136.135904]  ? __pfx_kthread+0x10/0x10 [ 1136.139657]  ret_from_fork+0x31/0x50 [ 1136.143236]  ? __pfx_kthread+0x10/0x10 [ 1136.146988]  ret_from_fork_asm+0x1a/0x30 [ 1136.150915]  </TASK>",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40262",
                                "url": "https://ubuntu.com/security/CVE-2025-40262",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: imx_sc_key - fix memory corruption on unload  This is supposed to be \"priv\" but we accidentally pass \"&priv\" which is an address in the stack and so it will lead to memory corruption when the imx_sc_key_action() function is called.  Remove the &.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40263",
                                "url": "https://ubuntu.com/security/CVE-2025-40263",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: cros_ec_keyb - fix an invalid memory access  If cros_ec_keyb_register_matrix() isn't called (due to `buttons_switches_only`) in cros_ec_keyb_probe(), `ckdev->idev` remains NULL.  An invalid memory access is observed in cros_ec_keyb_process() when receiving an EC_MKBP_EVENT_KEY_MATRIX event in cros_ec_keyb_work() in such case.    Unable to handle kernel read from unreadable memory at virtual address 0000000000000028   ...   x3 : 0000000000000000 x2 : 0000000000000000   x1 : 0000000000000000 x0 : 0000000000000000   Call trace:   input_event   cros_ec_keyb_work   blocking_notifier_call_chain   ec_irq_thread  It's still unknown about why the kernel receives such malformed event, in any cases, the kernel shouldn't access `ckdev->idev` and friends if the driver doesn't intend to initialize them.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40264",
                                "url": "https://ubuntu.com/security/CVE-2025-40264",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  be2net: pass wrb_params in case of OS2BMC  be_insert_vlan_in_pkt() is called with the wrb_params argument being NULL at be_send_pkt_to_bmc() call site.  This may lead to dereferencing a NULL pointer when processing a workaround for specific packet, as commit bc0c3405abbb (\"be2net: fix a Tx stall bug caused by a specific ipv6 packet\") states.  The correct way would be to pass the wrb_params from be_xmit().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68238",
                                "url": "https://ubuntu.com/security/CVE-2025-68238",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mtd: rawnand: cadence: fix DMA device NULL pointer dereference  The DMA device pointer `dma_dev` was being dereferenced before ensuring that `cdns_ctrl->dmac` is properly initialized.  Move the assignment of `dma_dev` after successfully acquiring the DMA channel to ensure the pointer is valid before use.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68734",
                                "url": "https://ubuntu.com/security/CVE-2025-68734",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  isdn: mISDN: hfcsusb: fix memory leak in hfcsusb_probe()  In hfcsusb_probe(), the memory allocated for ctrl_urb gets leaked when setup_instance() fails with an error code. Fix that by freeing the urb before freeing the hw structure. Also change the error paths to use the goto ladder style.  Compile tested only. Issue found using a prototype static analysis tool.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40269",
                                "url": "https://ubuntu.com/security/CVE-2025-40269",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix potential overflow of PCM transfer buffer  The PCM stream data in USB-audio driver is transferred over USB URB packet buffers, and each packet size is determined dynamically.  The packet sizes are limited by some factors such as wMaxPacketSize USB descriptor.  OTOH, in the current code, the actually used packet sizes are determined only by the rate and the PPS, which may be bigger than the size limit above.  This results in a buffer overflow, as reported by syzbot.  Basically when the limit is smaller than the calculated packet size, it implies that something is wrong, most likely a weird USB descriptor.  So the best option would be just to return an error at the parameter setup time before doing any further operations.  This patch introduces such a sanity check, and returns -EINVAL when the packet size is greater than maxpacksize.  The comparison with ep->packsize[1] alone should suffice since it's always equal or greater than ep->packsize[0].",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40271",
                                "url": "https://ubuntu.com/security/CVE-2025-40271",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fs/proc: fix uaf in proc_readdir_de()  Pde is erased from subdir rbtree through rb_erase(), but not set the node to EMPTY, which may result in uaf access.  We should use RB_CLEAR_NODE() set the erased node to EMPTY, then pde_subdir_next() will return NULL to avoid uaf access.  We found an uaf issue while using stress-ng testing, need to run testcase getdent and tun in the same time.  The steps of the issue is as follows:  1) use getdent to traverse dir /proc/pid/net/dev_snmp6/, and current    pde is tun3;  2) in the [time windows] unregister netdevice tun3 and tun2, and erase    them from rbtree.  erase tun3 first, and then erase tun2.  the    pde(tun2) will be released to slab;  3) continue to getdent process, then pde_subdir_next() will return    pde(tun2) which is released, it will case uaf access.  CPU 0                                      |    CPU 1 ------------------------------------------------------------------------- traverse dir /proc/pid/net/dev_snmp6/      |  unregister_netdevice(tun->dev)   //tun3 tun2 sys_getdents64()                           |   iterate_dir()                            |     proc_readdir()                         |       proc_readdir_de()                    |     snmp6_unregister_dev()         pde_get(de);                       |       proc_remove()         read_unlock(&proc_subdir_lock);    |         remove_proc_subtree()                                            |          write_lock(&proc_subdir_lock);         [time window]                      |          rb_erase(&root->subdir_node, &parent->subdir);                                            |          write_unlock(&proc_subdir_lock);         read_lock(&proc_subdir_lock);      |         next = pde_subdir_next(de);        |         pde_put(de);                       |         de = next;    //UAF                |  rbtree of dev_snmp6                         |                     pde(tun3)                      /    \\                   NULL  pde(tun2)",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68241",
                                "url": "https://ubuntu.com/security/CVE-2025-68241",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: route: Prevent rt_bind_exception() from rebinding stale fnhe  The sit driver's packet transmission path calls: sit_tunnel_xmit() -> update_or_create_fnhe(), which lead to fnhe_remove_oldest() being called to delete entries exceeding FNHE_RECLAIM_DEPTH+random.  The race window is between fnhe_remove_oldest() selecting fnheX for deletion and the subsequent kfree_rcu(). During this time, the concurrent path's __mkroute_output() -> find_exception() can fetch the soon-to-be-deleted fnheX, and rt_bind_exception() then binds it with a new dst using a dst_hold(). When the original fnheX is freed via RCU, the dst reference remains permanently leaked.  CPU 0                             CPU 1 __mkroute_output()   find_exception() [fnheX]                                   update_or_create_fnhe()                                     fnhe_remove_oldest() [fnheX]   rt_bind_exception() [bind dst]                                   RCU callback [fnheX freed, dst leak]  This issue manifests as a device reference count leak and a warning in dmesg when unregistering the net device:    unregister_netdevice: waiting for sitX to become free. Usage count = N  Ido Schimmel provided the simple test validation method [1].  The fix clears 'oldest->fnhe_daddr' before calling fnhe_flush_routes(). Since rt_bind_exception() checks this field, setting it to zero prevents the stale fnhe from being reused and bound to a new dst just before it is freed.  [1] ip netns add ns1 ip -n ns1 link set dev lo up ip -n ns1 address add 192.0.2.1/32 dev lo ip -n ns1 link add name dummy1 up type dummy ip -n ns1 route add 192.0.2.2/32 dev dummy1 ip -n ns1 link add name gretap1 up arp off type gretap \\     local 192.0.2.1 remote 192.0.2.2 ip -n ns1 route add 198.51.0.0/16 dev gretap1 taskset -c 0 ip netns exec ns1 mausezahn gretap1 \\     -A 198.51.100.1 -B 198.51.0.0/16 -t udp -p 1000 -c 0 -q & taskset -c 2 ip netns exec ns1 mausezahn gretap1 \\     -A 198.51.100.1 -B 198.51.0.0/16 -t udp -p 1000 -c 0 -q & sleep 10 ip netns pids ns1 | xargs kill ip netns del ns1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40273",
                                "url": "https://ubuntu.com/security/CVE-2025-40273",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: free copynotify stateid in nfs4_free_ol_stateid()  Typically copynotify stateid is freed either when parent's stateid is being close/freed or in nfsd4_laundromat if the stateid hasn't been used in a lease period.  However, in case when the server got an OPEN (which created a parent stateid), followed by a COPY_NOTIFY using that stateid, followed by a client reboot. New client instance while doing CREATE_SESSION would force expire previous state of this client. It leads to the open state being freed thru release_openowner-> nfs4_free_ol_stateid() and it finds that it still has copynotify stateid associated with it. We currently print a warning and is triggerred  WARNING: CPU: 1 PID: 8858 at fs/nfsd/nfs4state.c:1550 nfs4_free_ol_stateid+0xb0/0x100 [nfsd]  This patch, instead, frees the associated copynotify stateid here.  If the parent stateid is freed (without freeing the copynotify stateids associated with it), it leads to the list corruption when laundromat ends up freeing the copynotify state later.  [ 1626.839430] Internal error: Oops - BUG: 00000000f2000800 [#1]  SMP [ 1626.842828] Modules linked in: nfnetlink_queue nfnetlink_log bluetooth cfg80211 rpcrdma rdma_cm iw_cm ib_cm ib_core nfsd nfs_acl lockd grace nfs_localio ext4 crc16 mbcache jbd2 overlay uinput snd_seq_dummy snd_hrtimer qrtr rfkill vfat fat uvcvideo snd_hda_codec_generic videobuf2_vmalloc videobuf2_memops snd_hda_intel uvc snd_intel_dspcfg videobuf2_v4l2 videobuf2_common snd_hda_codec snd_hda_core videodev snd_hwdep snd_seq mc snd_seq_device snd_pcm snd_timer snd soundcore sg loop auth_rpcgss vsock_loopback vmw_vsock_virtio_transport_common vmw_vsock_vmci_transport vmw_vmci vsock xfs 8021q garp stp llc mrp nvme ghash_ce e1000e nvme_core sr_mod nvme_keyring nvme_auth cdrom vmwgfx drm_ttm_helper ttm sunrpc dm_mirror dm_region_hash dm_log iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi fuse dm_multipath dm_mod nfnetlink [ 1626.855594] CPU: 2 UID: 0 PID: 199 Comm: kworker/u24:33 Kdump: loaded Tainted: G    B   W           6.17.0-rc7+ #22 PREEMPT(voluntary) [ 1626.857075] Tainted: [B]=BAD_PAGE, [W]=WARN [ 1626.857573] Hardware name: VMware, Inc. VMware20,1/VBSA, BIOS VMW201.00V.24006586.BA64.2406042154 06/04/2024 [ 1626.858724] Workqueue: nfsd4 laundromat_main [nfsd] [ 1626.859304] pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) [ 1626.860010] pc : __list_del_entry_valid_or_report+0x148/0x200 [ 1626.860601] lr : __list_del_entry_valid_or_report+0x148/0x200 [ 1626.861182] sp : ffff8000881d7a40 [ 1626.861521] x29: ffff8000881d7a40 x28: 0000000000000018 x27: ffff0000c2a98200 [ 1626.862260] x26: 0000000000000600 x25: 0000000000000000 x24: ffff8000881d7b20 [ 1626.862986] x23: ffff0000c2a981e8 x22: 1fffe00012410e7d x21: ffff0000920873e8 [ 1626.863701] x20: ffff0000920873e8 x19: ffff000086f22998 x18: 0000000000000000 [ 1626.864421] x17: 20747562202c3839 x16: 3932326636383030 x15: 3030666666662065 [ 1626.865092] x14: 6220646c756f6873 x13: 0000000000000001 x12: ffff60004fd9e4a3 [ 1626.865713] x11: 1fffe0004fd9e4a2 x10: ffff60004fd9e4a2 x9 : dfff800000000000 [ 1626.866320] x8 : 00009fffb0261b5e x7 : ffff00027ecf2513 x6 : 0000000000000001 [ 1626.866938] x5 : ffff00027ecf2510 x4 : ffff60004fd9e4a3 x3 : 0000000000000000 [ 1626.867553] x2 : 0000000000000000 x1 : ffff000096069640 x0 : 000000000000006d [ 1626.868167] Call trace: [ 1626.868382]  __list_del_entry_valid_or_report+0x148/0x200 (P) [ 1626.868876]  _free_cpntf_state_locked+0xd0/0x268 [nfsd] [ 1626.869368]  nfs4_laundromat+0x6f8/0x1058 [nfsd] [ 1626.869813]  laundromat_main+0x24/0x60 [nfsd] [ 1626.870231]  process_one_work+0x584/0x1050 [ 1626.870595]  worker_thread+0x4c4/0xc60 [ 1626.870893]  kthread+0x2f8/0x398 [ 1626.871146]  ret_from_fork+0x10/0x20 [ 1626.871422] Code: aa1303e1 aa1403e3 910e8000 97bc55d7 (d4210000) [ 1626.871892] SMP: stopping secondary CPUs",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40040",
                                "url": "https://ubuntu.com/security/CVE-2025-40040",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/ksm: fix flag-dropping behavior in ksm_madvise  syzkaller discovered the following crash: (kernel BUG)  [   44.607039] ------------[ cut here ]------------ [   44.607422] kernel BUG at mm/userfaultfd.c:2067! [   44.608148] Oops: invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN NOPTI [   44.608814] CPU: 1 UID: 0 PID: 2475 Comm: reproducer Not tainted 6.16.0-rc6 #1 PREEMPT(none) [   44.609635] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [   44.610695] RIP: 0010:userfaultfd_release_all+0x3a8/0x460  <snip other registers, drop unreliable trace>  [   44.617726] Call Trace: [   44.617926]  <TASK> [   44.619284]  userfaultfd_release+0xef/0x1b0 [   44.620976]  __fput+0x3f9/0xb60 [   44.621240]  fput_close_sync+0x110/0x210 [   44.622222]  __x64_sys_close+0x8f/0x120 [   44.622530]  do_syscall_64+0x5b/0x2f0 [   44.622840]  entry_SYSCALL_64_after_hwframe+0x76/0x7e [   44.623244] RIP: 0033:0x7f365bb3f227  Kernel panics because it detects UFFD inconsistency during userfaultfd_release_all().  Specifically, a VMA which has a valid pointer to vma->vm_userfaultfd_ctx, but no UFFD flags in vma->vm_flags.  The inconsistency is caused in ksm_madvise(): when user calls madvise() with MADV_UNMEARGEABLE on a VMA that is registered for UFFD in MINOR mode, it accidentally clears all flags stored in the upper 32 bits of vma->vm_flags.  Assuming x86_64 kernel build, unsigned long is 64-bit and unsigned int and int are 32-bit wide.  This setup causes the following mishap during the &= ~VM_MERGEABLE assignment.  VM_MERGEABLE is a 32-bit constant of type unsigned int, 0x8000'0000. After ~ is applied, it becomes 0x7fff'ffff unsigned int, which is then promoted to unsigned long before the & operation.  This promotion fills upper 32 bits with leading 0s, as we're doing unsigned conversion (and even for a signed conversion, this wouldn't help as the leading bit is 0). & operation thus ends up AND-ing vm_flags with 0x0000'0000'7fff'ffff instead of intended 0xffff'ffff'7fff'ffff and hence accidentally clears the upper 32-bits of its value.  Fix it by changing `VM_MERGEABLE` constant to unsigned long, using the BIT() macro.  Note: other VM_* flags are not affected: This only happens to the VM_MERGEABLE flag, as the other VM_* flags are all constants of type int and after ~ operation, they end up with leading 1 and are thus converted to unsigned long with leading 1s.  Note 2: After commit 31defc3b01d9 (\"userfaultfd: remove (VM_)BUG_ON()s\"), this is no longer a kernel BUG, but a WARNING at the same place:  [   45.595973] WARNING: CPU: 1 PID: 2474 at mm/userfaultfd.c:2067  but the root-cause (flag-drop) remains the same.  [akpm@linux-foundation.org: rust bindgen wasn't able to handle BIT(), from Miguel]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-28 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68200",
                                "url": "https://ubuntu.com/security/CVE-2025-68200",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Add bpf_prog_run_data_pointers()  syzbot found that cls_bpf_classify() is able to change tc_skb_cb(skb)->drop_reason triggering a warning in sk_skb_reason_drop().  WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 __sk_skb_reason_drop net/core/skbuff.c:1189 [inline] WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 sk_skb_reason_drop+0x76/0x170 net/core/skbuff.c:1214  struct tc_skb_cb has been added in commit ec624fe740b4 (\"net/sched: Extend qdisc control block with tc control block\"), which added a wrong interaction with db58ba459202 (\"bpf: wire in data and data_end for cls_act_bpf\").  drop_reason was added later.  Add bpf_prog_run_data_pointers() helper to save/restore the net_sched storage colliding with BPF data_meta/data_end.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40275",
                                "url": "https://ubuntu.com/security/CVE-2025-40275",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix NULL pointer dereference in snd_usb_mixer_controls_badd  In snd_usb_create_streams(), for UAC version 3 devices, the Interface Association Descriptor (IAD) is retrieved via usb_ifnum_to_if(). If this call fails, a fallback routine attempts to obtain the IAD from the next interface and sets a BADD profile. However, snd_usb_mixer_controls_badd() assumes that the IAD retrieved from usb_ifnum_to_if() is always valid, without performing a NULL check. This can lead to a NULL pointer dereference when usb_ifnum_to_if() fails to find the interface descriptor.  This patch adds a NULL pointer check after calling usb_ifnum_to_if() in snd_usb_mixer_controls_badd() to prevent the dereference.  This issue was discovered by syzkaller, which triggered the bug by sending a crafted USB device descriptor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40277",
                                "url": "https://ubuntu.com/security/CVE-2025-40277",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vmwgfx: Validate command header size against SVGA_CMD_MAX_DATASIZE  This data originates from userspace and is used in buffer offset calculations which could potentially overflow causing an out-of-bounds access.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40278",
                                "url": "https://ubuntu.com/security/CVE-2025-40278",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak  Fix a KMSAN kernel-infoleak detected  by the syzbot .  [net?] KMSAN: kernel-infoleak in __skb_datagram_iter  In tcf_ife_dump(), the variable 'opt' was partially initialized using a designatied initializer. While the padding bytes are reamined uninitialized. nla_put() copies the entire structure into a netlink message, these uninitialized bytes leaked to userspace.  Initialize the structure with memset before assigning its fields to ensure all members and padding are cleared prior to beign copied.  This change silences the KMSAN report and prevents potential information leaks from the kernel memory.  This fix has been tested and validated by syzbot. This patch closes the bug reported at the following syzkaller link and ensures no infoleak.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40279",
                                "url": "https://ubuntu.com/security/CVE-2025-40279",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: act_connmark: initialize struct tc_ife to fix kernel leak  In tcf_connmark_dump(), the variable 'opt' was partially initialized using a designatied initializer. While the padding bytes are reamined uninitialized. nla_put() copies the entire structure into a netlink message, these uninitialized bytes leaked to userspace.  Initialize the structure with memset before assigning its fields to ensure all members and padding are cleared prior to beign copied.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40280",
                                "url": "https://ubuntu.com/security/CVE-2025-40280",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tipc: Fix use-after-free in tipc_mon_reinit_self().  syzbot reported use-after-free of tipc_net(net)->monitors[] in tipc_mon_reinit_self(). [0]  The array is protected by RTNL, but tipc_mon_reinit_self() iterates over it without RTNL.  tipc_mon_reinit_self() is called from tipc_net_finalize(), which is always under RTNL except for tipc_net_finalize_work().  Let's hold RTNL in tipc_net_finalize_work().  [0]: BUG: KASAN: slab-use-after-free in __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] BUG: KASAN: slab-use-after-free in _raw_spin_lock_irqsave+0xa7/0xf0 kernel/locking/spinlock.c:162 Read of size 1 at addr ffff88805eae1030 by task kworker/0:7/5989  CPU: 0 UID: 0 PID: 5989 Comm: kworker/0:7 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025 Workqueue: events tipc_net_finalize_work Call Trace:  <TASK>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0xca/0x240 mm/kasan/report.c:482  kasan_report+0x118/0x150 mm/kasan/report.c:595  __kasan_check_byte+0x2a/0x40 mm/kasan/common.c:568  kasan_check_byte include/linux/kasan.h:399 [inline]  lock_acquire+0x8d/0x360 kernel/locking/lockdep.c:5842  __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]  _raw_spin_lock_irqsave+0xa7/0xf0 kernel/locking/spinlock.c:162  rtlock_slowlock kernel/locking/rtmutex.c:1894 [inline]  rwbase_rtmutex_lock_state kernel/locking/spinlock_rt.c:160 [inline]  rwbase_write_lock+0xd3/0x7e0 kernel/locking/rwbase_rt.c:244  rt_write_lock+0x76/0x110 kernel/locking/spinlock_rt.c:243  write_lock_bh include/linux/rwlock_rt.h:99 [inline]  tipc_mon_reinit_self+0x79/0x430 net/tipc/monitor.c:718  tipc_net_finalize+0x115/0x190 net/tipc/net.c:140  process_one_work kernel/workqueue.c:3236 [inline]  process_scheduled_works+0xade/0x17b0 kernel/workqueue.c:3319  worker_thread+0x8a0/0xda0 kernel/workqueue.c:3400  kthread+0x70e/0x8a0 kernel/kthread.c:463  ret_from_fork+0x439/0x7d0 arch/x86/kernel/process.c:148  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 6089:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x3e/0x80 mm/kasan/common.c:68  poison_kmalloc_redzone mm/kasan/common.c:388 [inline]  __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:405  kasan_kmalloc include/linux/kasan.h:260 [inline]  __kmalloc_cache_noprof+0x1a8/0x320 mm/slub.c:4407  kmalloc_noprof include/linux/slab.h:905 [inline]  kzalloc_noprof include/linux/slab.h:1039 [inline]  tipc_mon_create+0xc3/0x4d0 net/tipc/monitor.c:657  tipc_enable_bearer net/tipc/bearer.c:357 [inline]  __tipc_nl_bearer_enable+0xe16/0x13f0 net/tipc/bearer.c:1047  __tipc_nl_compat_doit net/tipc/netlink_compat.c:371 [inline]  tipc_nl_compat_doit+0x3bc/0x5f0 net/tipc/netlink_compat.c:393  tipc_nl_compat_handle net/tipc/netlink_compat.c:-1 [inline]  tipc_nl_compat_recv+0x83c/0xbe0 net/tipc/netlink_compat.c:1321  genl_family_rcv_msg_doit+0x215/0x300 net/netlink/genetlink.c:1115  genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]  genl_rcv_msg+0x60e/0x790 net/netlink/genetlink.c:1210  netlink_rcv_skb+0x208/0x470 net/netlink/af_netlink.c:2552  genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219  netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]  netlink_unicast+0x846/0xa10 net/netlink/af_netlink.c:1346  netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1896  sock_sendmsg_nosec net/socket.c:714 [inline]  __sock_sendmsg+0x21c/0x270 net/socket.c:729  ____sys_sendmsg+0x508/0x820 net/socket.c:2614  ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2668  __sys_sendmsg net/socket.c:2700 [inline]  __do_sys_sendmsg net/socket.c:2705 [inline]  __se_sys_sendmsg net/socket.c:2703 [inline]  __x64_sys_sendmsg+0x1a1/0x260 net/socket.c:2703  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0x3b0 arch/ ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40281",
                                "url": "https://ubuntu.com/security/CVE-2025-40281",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: prevent possible shift-out-of-bounds in sctp_transport_update_rto  syzbot reported a possible shift-out-of-bounds [1]  Blamed commit added rto_alpha_max and rto_beta_max set to 1000.  It is unclear if some sctp users are setting very large rto_alpha and/or rto_beta.  In order to prevent user regression, perform the test at run time.  Also add READ_ONCE() annotations as sysctl values can change under us.  [1]  UBSAN: shift-out-of-bounds in net/sctp/transport.c:509:41 shift exponent 64 is too large for 32-bit type 'unsigned int' CPU: 0 UID: 0 PID: 16704 Comm: syz.2.2320 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 Call Trace:  <TASK>   __dump_stack lib/dump_stack.c:94 [inline]   dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120   ubsan_epilogue lib/ubsan.c:233 [inline]   __ubsan_handle_shift_out_of_bounds+0x27f/0x420 lib/ubsan.c:494   sctp_transport_update_rto.cold+0x1c/0x34b net/sctp/transport.c:509   sctp_check_transmitted+0x11c4/0x1c30 net/sctp/outqueue.c:1502   sctp_outq_sack+0x4ef/0x1b20 net/sctp/outqueue.c:1338   sctp_cmd_process_sack net/sctp/sm_sideeffect.c:840 [inline]   sctp_cmd_interpreter net/sctp/sm_sideeffect.c:1372 [inline]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40282",
                                "url": "https://ubuntu.com/security/CVE-2025-40282",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: 6lowpan: reset link-local header on ipv6 recv path  Bluetooth 6lowpan.c netdev has header_ops, so it must set link-local header for RX skb, otherwise things crash, eg. with AF_PACKET SOCK_RAW  Add missing skb_reset_mac_header() for uncompressed ipv6 RX path.  For the compressed one, it is done in lowpan_header_decompress().  Log: (BlueZ 6lowpan-tester Client Recv Raw - Success) ------ kernel BUG at net/core/skbuff.c:212! Call Trace: <IRQ> ... packet_rcv (net/packet/af_packet.c:2152) ... <TASK> __local_bh_enable_ip (kernel/softirq.c:407) netif_rx (net/core/dev.c:5648) chan_recv_cb (net/bluetooth/6lowpan.c:294 net/bluetooth/6lowpan.c:359) ------",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40283",
                                "url": "https://ubuntu.com/security/CVE-2025-40283",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: btusb: reorder cleanup in btusb_disconnect to avoid UAF  There is a KASAN: slab-use-after-free read in btusb_disconnect(). Calling \"usb_driver_release_interface(&btusb_driver, data->intf)\" will free the btusb data associated with the interface. The same data is then used later in the function, hence the UAF.  Fix by moving the accesses to btusb data to before the data is free'd.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68244",
                                "url": "https://ubuntu.com/security/CVE-2025-68244",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915: Avoid lock inversion when pinning to GGTT on CHV/BXT+VTD  On completion of i915_vma_pin_ww(), a synchronous variant of dma_fence_work_commit() is called.  When pinning a VMA to GGTT address space on a Cherry View family processor, or on a Broxton generation SoC with VTD enabled, i.e., when stop_machine() is then called from intel_ggtt_bind_vma(), that can potentially lead to lock inversion among reservation_ww and cpu_hotplug locks.  [86.861179] ====================================================== [86.861193] WARNING: possible circular locking dependency detected [86.861209] 6.15.0-rc5-CI_DRM_16515-gca0305cadc2d+ #1 Tainted: G     U [86.861226] ------------------------------------------------------ [86.861238] i915_module_loa/1432 is trying to acquire lock: [86.861252] ffffffff83489090 (cpu_hotplug_lock){++++}-{0:0}, at: stop_machine+0x1c/0x50 [86.861290] but task is already holding lock: [86.861303] ffffc90002e0b4c8 (reservation_ww_class_mutex){+.+.}-{3:3}, at: i915_vma_pin.constprop.0+0x39/0x1d0 [i915] [86.862233] which lock already depends on the new lock. [86.862251] the existing dependency chain (in reverse order) is: [86.862265] -> #5 (reservation_ww_class_mutex){+.+.}-{3:3}: [86.862292]        dma_resv_lockdep+0x19a/0x390 [86.862315]        do_one_initcall+0x60/0x3f0 [86.862334]        kernel_init_freeable+0x3cd/0x680 [86.862353]        kernel_init+0x1b/0x200 [86.862369]        ret_from_fork+0x47/0x70 [86.862383]        ret_from_fork_asm+0x1a/0x30 [86.862399] -> #4 (reservation_ww_class_acquire){+.+.}-{0:0}: [86.862425]        dma_resv_lockdep+0x178/0x390 [86.862440]        do_one_initcall+0x60/0x3f0 [86.862454]        kernel_init_freeable+0x3cd/0x680 [86.862470]        kernel_init+0x1b/0x200 [86.862482]        ret_from_fork+0x47/0x70 [86.862495]        ret_from_fork_asm+0x1a/0x30 [86.862509] -> #3 (&mm->mmap_lock){++++}-{3:3}: [86.862531]        down_read_killable+0x46/0x1e0 [86.862546]        lock_mm_and_find_vma+0xa2/0x280 [86.862561]        do_user_addr_fault+0x266/0x8e0 [86.862578]        exc_page_fault+0x8a/0x2f0 [86.862593]        asm_exc_page_fault+0x27/0x30 [86.862607]        filldir64+0xeb/0x180 [86.862620]        kernfs_fop_readdir+0x118/0x480 [86.862635]        iterate_dir+0xcf/0x2b0 [86.862648]        __x64_sys_getdents64+0x84/0x140 [86.862661]        x64_sys_call+0x1058/0x2660 [86.862675]        do_syscall_64+0x91/0xe90 [86.862689]        entry_SYSCALL_64_after_hwframe+0x76/0x7e [86.862703] -> #2 (&root->kernfs_rwsem){++++}-{3:3}: [86.862725]        down_write+0x3e/0xf0 [86.862738]        kernfs_add_one+0x30/0x3c0 [86.862751]        kernfs_create_dir_ns+0x53/0xb0 [86.862765]        internal_create_group+0x134/0x4c0 [86.862779]        sysfs_create_group+0x13/0x20 [86.862792]        topology_add_dev+0x1d/0x30 [86.862806]        cpuhp_invoke_callback+0x4b5/0x850 [86.862822]        cpuhp_issue_call+0xbf/0x1f0 [86.862836]        __cpuhp_setup_state_cpuslocked+0x111/0x320 [86.862852]        __cpuhp_setup_state+0xb0/0x220 [86.862866]        topology_sysfs_init+0x30/0x50 [86.862879]        do_one_initcall+0x60/0x3f0 [86.862893]        kernel_init_freeable+0x3cd/0x680 [86.862908]        kernel_init+0x1b/0x200 [86.862921]        ret_from_fork+0x47/0x70 [86.862934]        ret_from_fork_asm+0x1a/0x30 [86.862947] -> #1 (cpuhp_state_mutex){+.+.}-{3:3}: [86.862969]        __mutex_lock+0xaa/0xed0 [86.862982]        mutex_lock_nested+0x1b/0x30 [86.862995]        __cpuhp_setup_state_cpuslocked+0x67/0x320 [86.863012]        __cpuhp_setup_state+0xb0/0x220 [86.863026]        page_alloc_init_cpuhp+0x2d/0x60 [86.863041]        mm_core_init+0x22/0x2d0 [86.863054]        start_kernel+0x576/0xbd0 [86.863068]        x86_64_start_reservations+0x18/0x30 [86.863084]        x86_64_start_kernel+0xbf/0x110 [86.863098]        common_startup_64+0x13e/0x141 [86.863114] -> #0 (cpu_hotplug_lock){++++}-{0:0}: [86.863135]        __lock_acquire+0x16 ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68192",
                                "url": "https://ubuntu.com/security/CVE-2025-68192",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: qmi_wwan: initialize MAC header offset in qmimux_rx_fixup  Raw IP packets have no MAC header, leaving skb->mac_header uninitialized. This can trigger kernel panics on ARM64 when xfrm or other subsystems access the offset due to strict alignment checks.  Initialize the MAC header to prevent such crashes.  This can trigger kernel panics on ARM when running IPsec over the qmimux0 interface.  Example trace:      Internal error: Oops: 000000009600004f [#1] SMP     CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.12.34-gbe78e49cb433 #1     Hardware name: LS1028A RDB Board (DT)     pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)     pc : xfrm_input+0xde8/0x1318     lr : xfrm_input+0x61c/0x1318     sp : ffff800080003b20     Call trace:      xfrm_input+0xde8/0x1318      xfrm6_rcv+0x38/0x44      xfrm6_esp_rcv+0x48/0xa8      ip6_protocol_deliver_rcu+0x94/0x4b0      ip6_input_finish+0x44/0x70      ip6_input+0x44/0xc0      ipv6_rcv+0x6c/0x114      __netif_receive_skb_one_core+0x5c/0x8c      __netif_receive_skb+0x18/0x60      process_backlog+0x78/0x17c      __napi_poll+0x38/0x180      net_rx_action+0x168/0x2f0",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40331",
                                "url": "https://ubuntu.com/security/CVE-2025-40331",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: Prevent TOCTOU out-of-bounds write  For the following path not holding the sock lock,    sctp_diag_dump() -> sctp_for_each_endpoint() -> sctp_ep_dump()  make sure not to exceed bounds in case the address list has grown between buffer allocation (time-of-check) and write (time-of-use).",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-09 16:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40304",
                                "url": "https://ubuntu.com/security/CVE-2025-40304",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fbdev: Add bounds checking in bit_putcs to fix vmalloc-out-of-bounds  Add bounds checking to prevent writes past framebuffer boundaries when rendering text near screen edges. Return early if the Y position is off-screen and clip image height to screen boundary. Break from the rendering loop if the X position is off-screen. When clipping image width to fit the screen, update the character count to match the clipped width to prevent buffer size mismatches.  Without the character count update, bit_putcs_aligned and bit_putcs_unaligned receive mismatched parameters where the buffer is allocated for the clipped width but cnt reflects the original larger count, causing out-of-bounds writes.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40306",
                                "url": "https://ubuntu.com/security/CVE-2025-40306",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  orangefs: fix xattr related buffer overflow...  Willy Tarreau <w@1wt.eu> forwarded me a message from Disclosure <disclosure@aisle.com> with the following warning:  > The helper `xattr_key()` uses the pointer variable in the loop condition > rather than dereferencing it. As `key` is incremented, it remains non-NULL > (until it runs into unmapped memory), so the loop does not terminate on > valid C strings and will walk memory indefinitely, consuming CPU or hanging > the thread.  I easily reproduced this with setfattr and getfattr, causing a kernel oops, hung user processes and corrupted orangefs files. Disclosure sent along a diff (not a patch) with a suggested fix, which I based this patch on.  After xattr_key started working right, xfstest generic/069 exposed an xattr related memory leak that lead to OOM. xattr_key returns a hashed key.  When adding xattrs to the orangefs xattr cache, orangefs used hash_add, a kernel hashing macro. hash_add also hashes the key using hash_log which resulted in additions to the xattr cache going to the wrong hash bucket. generic/069 tortures a single file and orangefs does a getattr for the xattr \"security.capability\" every time. Orangefs negative caches on xattrs which includes a kmalloc. Since adds to the xattr cache were going to the wrong bucket, every getattr for \"security.capability\" resulted in another kmalloc, none of which were ever freed.  I changed the two uses of hash_add to hlist_add_head instead and the memory leak ceased and generic/069 quit throwing furniture.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40308",
                                "url": "https://ubuntu.com/security/CVE-2025-40308",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: bcsp: receive data only if registered  Currently, bcsp_recv() can be called even when the BCSP protocol has not been registered. This leads to a NULL pointer dereference, as shown in the following stack trace:      KASAN: null-ptr-deref in range [0x0000000000000108-0x000000000000010f]     RIP: 0010:bcsp_recv+0x13d/0x1740 drivers/bluetooth/hci_bcsp.c:590     Call Trace:      <TASK>      hci_uart_tty_receive+0x194/0x220 drivers/bluetooth/hci_ldisc.c:627      tiocsti+0x23c/0x2c0 drivers/tty/tty_io.c:2290      tty_ioctl+0x626/0xde0 drivers/tty/tty_io.c:2706      vfs_ioctl fs/ioctl.c:51 [inline]      __do_sys_ioctl fs/ioctl.c:907 [inline]      __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:893      do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]      do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94      entry_SYSCALL_64_after_hwframe+0x77/0x7f  To prevent this, ensure that the HCI_UART_REGISTERED flag is set before processing received data. If the protocol is not registered, return -EUNATCH.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40309",
                                "url": "https://ubuntu.com/security/CVE-2025-40309",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: SCO: Fix UAF on sco_conn_free  BUG: KASAN: slab-use-after-free in sco_conn_free net/bluetooth/sco.c:87 [inline] BUG: KASAN: slab-use-after-free in kref_put include/linux/kref.h:65 [inline] BUG: KASAN: slab-use-after-free in sco_conn_put+0xdd/0x410 net/bluetooth/sco.c:107 Write of size 8 at addr ffff88811cb96b50 by task kworker/u17:4/352  CPU: 1 UID: 0 PID: 352 Comm: kworker/u17:4 Not tainted 6.17.0-rc5-g717368f83676 #4 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 Workqueue: hci13 hci_cmd_sync_work Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x10b/0x170 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0x191/0x550 mm/kasan/report.c:482  kasan_report+0xc4/0x100 mm/kasan/report.c:595  sco_conn_free net/bluetooth/sco.c:87 [inline]  kref_put include/linux/kref.h:65 [inline]  sco_conn_put+0xdd/0x410 net/bluetooth/sco.c:107  sco_connect_cfm+0xb4/0xae0 net/bluetooth/sco.c:1441  hci_connect_cfm include/net/bluetooth/hci_core.h:2082 [inline]  hci_conn_failed+0x20a/0x2e0 net/bluetooth/hci_conn.c:1313  hci_conn_unlink+0x55f/0x810 net/bluetooth/hci_conn.c:1121  hci_conn_del+0xb6/0x1110 net/bluetooth/hci_conn.c:1147  hci_abort_conn_sync+0x8c5/0xbb0 net/bluetooth/hci_sync.c:5689  hci_cmd_sync_work+0x281/0x380 net/bluetooth/hci_sync.c:332  process_one_work kernel/workqueue.c:3236 [inline]  process_scheduled_works+0x77e/0x1040 kernel/workqueue.c:3319  worker_thread+0xbee/0x1200 kernel/workqueue.c:3400  kthread+0x3c7/0x870 kernel/kthread.c:463  ret_from_fork+0x13a/0x1e0 arch/x86/kernel/process.c:148  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 31370:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x30/0x70 mm/kasan/common.c:68  poison_kmalloc_redzone mm/kasan/common.c:388 [inline]  __kasan_kmalloc+0x82/0x90 mm/kasan/common.c:405  kasan_kmalloc include/linux/kasan.h:260 [inline]  __do_kmalloc_node mm/slub.c:4382 [inline]  __kmalloc_noprof+0x22f/0x390 mm/slub.c:4394  kmalloc_noprof include/linux/slab.h:909 [inline]  sk_prot_alloc+0xae/0x220 net/core/sock.c:2239  sk_alloc+0x34/0x5a0 net/core/sock.c:2295  bt_sock_alloc+0x3c/0x330 net/bluetooth/af_bluetooth.c:151  sco_sock_alloc net/bluetooth/sco.c:562 [inline]  sco_sock_create+0xc0/0x350 net/bluetooth/sco.c:593  bt_sock_create+0x161/0x3b0 net/bluetooth/af_bluetooth.c:135  __sock_create+0x3ad/0x780 net/socket.c:1589  sock_create net/socket.c:1647 [inline]  __sys_socket_create net/socket.c:1684 [inline]  __sys_socket+0xd5/0x330 net/socket.c:1731  __do_sys_socket net/socket.c:1745 [inline]  __se_sys_socket net/socket.c:1743 [inline]  __x64_sys_socket+0x7a/0x90 net/socket.c:1743  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xc7/0x240 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 31374:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x30/0x70 mm/kasan/common.c:68  kasan_save_free_info+0x40/0x50 mm/kasan/generic.c:576  poison_slab_object mm/kasan/common.c:243 [inline]  __kasan_slab_free+0x3d/0x50 mm/kasan/common.c:275  kasan_slab_free include/linux/kasan.h:233 [inline]  slab_free_hook mm/slub.c:2428 [inline]  slab_free mm/slub.c:4701 [inline]  kfree+0x199/0x3b0 mm/slub.c:4900  sk_prot_free net/core/sock.c:2278 [inline]  __sk_destruct+0x4aa/0x630 net/core/sock.c:2373  sco_sock_release+0x2ad/0x300 net/bluetooth/sco.c:1333  __sock_release net/socket.c:649 [inline]  sock_close+0xb8/0x230 net/socket.c:1439  __fput+0x3d1/0x9e0 fs/file_table.c:468  task_work_run+0x206/0x2a0 kernel/task_work.c:227  get_signal+0x1201/0x1410 kernel/signal.c:2807  arch_do_signal_or_restart+0x34/0x740 arch/x86/kernel/signal.c:337  exit_to_user_mode_loop+0x68/0xc0 kernel/entry/common.c:40  exit_to_user_mode_prepare include/linux/irq-entry-common.h:225 [inline]  s ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40361",
                                "url": "https://ubuntu.com/security/CVE-2025-40361",
                                "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68185",
                                "url": "https://ubuntu.com/security/CVE-2025-68185",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfs4_setup_readdir(): insufficient locking for ->d_parent->d_inode dereferencing  Theoretically it's an oopsable race, but I don't believe one can manage to hit it on real hardware; might become doable on a KVM, but it still won't be easy to attack.  Anyway, it's easy to deal with - since xdr_encode_hyper() is just a call of put_unaligned_be64(), we can put that under ->d_lock and be done with that.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68176",
                                "url": "https://ubuntu.com/security/CVE-2025-68176",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  PCI: cadence: Check for the existence of cdns_pcie::ops before using it  cdns_pcie::ops might not be populated by all the Cadence glue drivers. This is going to be true for the upcoming Sophgo platform which doesn't set the ops.  Hence, add a check to prevent NULL pointer dereference.  [mani: reworded subject and description]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68168",
                                "url": "https://ubuntu.com/security/CVE-2025-68168",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jfs: fix uninitialized waitqueue in transaction manager  The transaction manager initialization in txInit() was not properly initializing TxBlock[0].waitor waitqueue, causing a crash when txEnd(0) is called on read-only filesystems.  When a filesystem is mounted read-only, txBegin() returns tid=0 to indicate no transaction. However, txEnd(0) still gets called and tries to access TxBlock[0].waitor via tid_to_tblock(0), but this waitqueue was never initialized because the initialization loop started at index 1 instead of 0.  This causes a 'non-static key' lockdep warning and system crash:   INFO: trying to register non-static key in txEnd  Fix by ensuring all transaction blocks including TxBlock[0] have their waitqueues properly initialized during txInit().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40312",
                                "url": "https://ubuntu.com/security/CVE-2025-40312",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jfs: Verify inode mode when loading from disk  The inode mode loaded from corrupted disk can be invalid. Do like what commit 0a9e74051313 (\"isofs: Verify inode mode when loading from disk\") does.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68321",
                                "url": "https://ubuntu.com/security/CVE-2025-68321",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  page_pool: always add GFP_NOWARN for ATOMIC allocations  Driver authors often forget to add GFP_NOWARN for page allocation from the datapath. This is annoying to users as OOMs are a fact of life, and we pretty much expect network Rx to hit page allocation failures during OOM. Make page pool add GFP_NOWARN for ATOMIC allocations by default.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68191",
                                "url": "https://ubuntu.com/security/CVE-2025-68191",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  udp_tunnel: use netdev_warn() instead of netdev_WARN()  netdev_WARN() uses WARN/WARN_ON to print a backtrace along with file and line information. In this case, udp_tunnel_nic_register() returning an error is just a failed operation, not a kernel bug.  udp_tunnel_nic_register() can fail due to a memory allocation failure (kzalloc() or udp_tunnel_nic_alloc()). This is a normal runtime error and not a kernel bug.  Replace netdev_WARN() with netdev_warn() accordingly.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40313",
                                "url": "https://ubuntu.com/security/CVE-2025-40313",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: pretend $Extend records as regular files  Since commit af153bb63a33 (\"vfs: catch invalid modes in may_open()\") requires any inode be one of S_IFDIR/S_IFLNK/S_IFREG/S_IFCHR/S_IFBLK/ S_IFIFO/S_IFSOCK type, use S_IFREG for $Extend records.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40314",
                                "url": "https://ubuntu.com/security/CVE-2025-40314",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: cdns3: gadget: Use-after-free during failed initialization and exit of cdnsp gadget  In the __cdnsp_gadget_init() and cdnsp_gadget_exit() functions, the gadget structure (pdev->gadget) was freed before its endpoints. The endpoints are linked via the ep_list in the gadget structure. Freeing the gadget first leaves dangling pointers in the endpoint list. When the endpoints are subsequently freed, this results in a use-after-free.  Fix: By separating the usb_del_gadget_udc() operation into distinct \"del\" and \"put\" steps, cdnsp_gadget_free_endpoints() can be executed prior to the final release of the gadget structure with usb_put_gadget().  A patch similar to bb9c74a5bd14(\"usb: dwc3: gadget: Free gadget structure  only after freeing endpoints\").",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68194",
                                "url": "https://ubuntu.com/security/CVE-2025-68194",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: imon: make send_packet() more robust  syzbot is reporting that imon has three problems which result in hung tasks due to forever holding device lock [1].  First problem is that when usb_rx_callback_intf0() once got -EPROTO error after ictx->dev_present_intf0 became true, usb_rx_callback_intf0() resubmits urb after printk(), and resubmitted urb causes usb_rx_callback_intf0() to again get -EPROTO error. This results in printk() flooding (RCU stalls).  Alan Stern commented [2] that    In theory it's okay to resubmit _if_ the driver has a robust   error-recovery scheme (such as giving up after some fixed limit on the   number of errors or after some fixed time has elapsed, perhaps with a   time delay to prevent a flood of errors).  Most drivers don't bother to   do this; they simply give up right away.  This makes them more   vulnerable to short-term noise interference during USB transfers, but in   reality such interference is quite rare.  There's nothing really wrong   with giving up right away.  but imon has a poor error-recovery scheme which just retries forever; this behavior should be fixed.  Since I'm not sure whether it is safe for imon users to give up upon any error code, this patch takes care of only union of error codes chosen from modules in drivers/media/rc/ directory which handle -EPROTO error (i.e. ir_toy, mceusb and igorplugusb).  Second problem is that when usb_rx_callback_intf0() once got -EPROTO error before ictx->dev_present_intf0 becomes true, usb_rx_callback_intf0() always resubmits urb due to commit 8791d63af0cf (\"[media] imon: don't wedge hardware after early callbacks\"). Move the ictx->dev_present_intf0 test introduced by commit 6f6b90c9231a (\"[media] imon: don't parse scancodes until intf configured\") to immediately before imon_incoming_packet(), or the first problem explained above happens without printk() flooding (i.e. hung task).  Third problem is that when usb_rx_callback_intf0() is not called for some reason (e.g. flaky hardware; the reproducer for this problem sometimes prevents usb_rx_callback_intf0() from being called), wait_for_completion_interruptible() in send_packet() never returns (i.e. hung task). As a workaround for such situation, change send_packet() to wait for completion with timeout of 10 seconds.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40363",
                                "url": "https://ubuntu.com/security/CVE-2025-40363",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: ipv6: fix field-spanning memcpy warning in AH output  Fix field-spanning memcpy warnings in ah6_output() and ah6_output_done() where extension headers are copied to/from IPv6 address fields, triggering fortify-string warnings about writes beyond the 16-byte address fields.    memcpy: detected field-spanning write (size 40) of single field \"&top_iph->saddr\" at net/ipv6/ah6.c:439 (size 16)   WARNING: CPU: 0 PID: 8838 at net/ipv6/ah6.c:439 ah6_output+0xe7e/0x14e0 net/ipv6/ah6.c:439  The warnings are false positives as the extension headers are intentionally placed after the IPv6 header in memory. Fix by properly copying addresses and extension headers separately, and introduce helper functions to avoid code duplication.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40342",
                                "url": "https://ubuntu.com/security/CVE-2025-40342",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-fc: use lock accessing port_state and rport state  nvme_fc_unregister_remote removes the remote port on a lport object at any point in time when there is no active association. This races with with the reconnect logic, because nvme_fc_create_association is not taking a lock to check the port_state and atomically increase the active count on the rport.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-09 16:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40343",
                                "url": "https://ubuntu.com/security/CVE-2025-40343",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-fc: avoid scheduling association deletion twice  When forcefully shutting down a port via the configfs interface, nvmet_port_subsys_drop_link() first calls nvmet_port_del_ctrls() and then nvmet_disable_port(). Both functions will eventually schedule all remaining associations for deletion.  The current implementation checks whether an association is about to be removed, but only after the work item has already been scheduled. As a result, it is possible for the first scheduled work item to free all resources, and then for the same work item to be scheduled again for deletion.  Because the association list is an RCU list, it is not possible to take a lock and remove the list entry directly, so it cannot be looked up again. Instead, a flag (terminating) must be used to determine whether the association is already in the process of being deleted.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-09 16:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68177",
                                "url": "https://ubuntu.com/security/CVE-2025-68177",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  cpufreq/longhaul: handle NULL policy in longhaul_exit  longhaul_exit() was calling cpufreq_cpu_get(0) without checking for a NULL policy pointer. On some systems, this could lead to a NULL dereference and a kernel warning or panic.  This patch adds a check using unlikely() and returns early if the policy is NULL.  Bugzilla: #219962",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40360",
                                "url": "https://ubuntu.com/security/CVE-2025-40360",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/sysfb: Do not dereference NULL pointer in plane reset  The plane state in __drm_gem_reset_shadow_plane() can be NULL. Do not deref that pointer, but forward NULL to the other plane-reset helpers. Clears plane->state to NULL.  v2: - fix typo in commit description (Javier)",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40315",
                                "url": "https://ubuntu.com/security/CVE-2025-40315",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: f_fs: Fix epfile null pointer access after ep enable.  A race condition occurs when ffs_func_eps_enable() runs concurrently with ffs_data_reset(). The ffs_data_clear() called in ffs_data_reset() sets ffs->epfiles to NULL before resetting ffs->eps_count to 0, leading to a NULL pointer dereference when accessing epfile->ep in ffs_func_eps_enable() after successful usb_ep_enable().  The ffs->epfiles pointer is set to NULL in both ffs_data_clear() and ffs_data_close() functions, and its modification is protected by the spinlock ffs->eps_lock. And the whole ffs_func_eps_enable() function is also protected by ffs->eps_lock.  Thus, add NULL pointer handling for ffs->epfiles in the ffs_func_eps_enable() function to fix issues",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40317",
                                "url": "https://ubuntu.com/security/CVE-2025-40317",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: slimbus: fix bus_context pointer in regmap init calls  Commit 4e65bda8273c (\"ASoC: wcd934x: fix error handling in wcd934x_codec_parse_data()\") revealed the problem in the slimbus regmap. That commit breaks audio playback, for instance, on sdm845 Thundercomm Dragonboard 845c board:   Unable to handle kernel paging request at virtual address ffff8000847cbad4  ...  CPU: 5 UID: 0 PID: 776 Comm: aplay Not tainted 6.18.0-rc1-00028-g7ea30958b305 #11 PREEMPT  Hardware name: Thundercomm Dragonboard 845c (DT)  ...  Call trace:   slim_xfer_msg+0x24/0x1ac [slimbus] (P)   slim_read+0x48/0x74 [slimbus]   regmap_slimbus_read+0x18/0x24 [regmap_slimbus]   _regmap_raw_read+0xe8/0x174   _regmap_bus_read+0x44/0x80   _regmap_read+0x60/0xd8   _regmap_update_bits+0xf4/0x140   _regmap_select_page+0xa8/0x124   _regmap_raw_write_impl+0x3b8/0x65c   _regmap_bus_raw_write+0x60/0x80   _regmap_write+0x58/0xc0   regmap_write+0x4c/0x80   wcd934x_hw_params+0x494/0x8b8 [snd_soc_wcd934x]   snd_soc_dai_hw_params+0x3c/0x7c [snd_soc_core]   __soc_pcm_hw_params+0x22c/0x634 [snd_soc_core]   dpcm_be_dai_hw_params+0x1d4/0x38c [snd_soc_core]   dpcm_fe_dai_hw_params+0x9c/0x17c [snd_soc_core]   snd_pcm_hw_params+0x124/0x464 [snd_pcm]   snd_pcm_common_ioctl+0x110c/0x1820 [snd_pcm]   snd_pcm_ioctl+0x34/0x4c [snd_pcm]   __arm64_sys_ioctl+0xac/0x104   invoke_syscall+0x48/0x104   el0_svc_common.constprop.0+0x40/0xe0   do_el0_svc+0x1c/0x28   el0_svc+0x34/0xec   el0t_64_sync_handler+0xa0/0xf0   el0t_64_sync+0x198/0x19c  The __devm_regmap_init_slimbus() started to be used instead of __regmap_init_slimbus() after the commit mentioned above and turns out the incorrect bus_context pointer (3rd argument) was used in __devm_regmap_init_slimbus(). It should be just \"slimbus\" (which is equal to &slimbus->dev). Correct it. The wcd934x codec seems to be the only or the first user of devm_regmap_init_slimbus() but we should fix it till the point where __devm_regmap_init_slimbus() was introduced therefore two \"Fixes\" tags.  While at this, also correct the same argument in __regmap_init_slimbus().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68312",
                                "url": "https://ubuntu.com/security/CVE-2025-68312",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usbnet: Prevents free active kevent  The root cause of this issue are: 1. When probing the usbnet device, executing usbnet_link_change(dev, 0, 0); put the kevent work in global workqueue. However, the kevent has not yet been scheduled when the usbnet device is unregistered. Therefore, executing free_netdev() results in the \"free active object (kevent)\" error reported here.  2. Another factor is that when calling usbnet_disconnect()->unregister_netdev(), if the usbnet device is up, ndo_stop() is executed to cancel the kevent. However, because the device is not up, ndo_stop() is not executed.  The solution to this problem is to cancel the kevent before executing free_netdev().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40319",
                                "url": "https://ubuntu.com/security/CVE-2025-40319",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Sync pending IRQ work before freeing ring buffer  Fix a race where irq_work can be queued in bpf_ringbuf_commit() but the ring buffer is freed before the work executes. In the syzbot reproducer, a BPF program attached to sched_switch triggers bpf_ringbuf_commit(), queuing an irq_work. If the ring buffer is freed before this work executes, the irq_work thread may accesses freed memory. Calling `irq_work_sync(&rb->work)` ensures that all pending irq_work complete before freeing the buffer.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40321",
                                "url": "https://ubuntu.com/security/CVE-2025-40321",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: brcmfmac: fix crash while sending Action Frames in standalone AP Mode  Currently, whenever there is a need to transmit an Action frame, the brcmfmac driver always uses the P2P vif to send the \"actframe\" IOVAR to firmware. The P2P interfaces were available when wpa_supplicant is managing the wlan interface.  However, the P2P interfaces are not created/initialized when only hostapd is managing the wlan interface. And if hostapd receives an ANQP Query REQ Action frame even from an un-associated STA, the brcmfmac driver tries to use an uninitialized P2P vif pointer for sending the IOVAR to firmware. This NULL pointer dereferencing triggers a driver crash.   [ 1417.074538] Unable to handle kernel NULL pointer dereference at virtual  address 0000000000000000  [...]  [ 1417.075188] Hardware name: Raspberry Pi 4 Model B Rev 1.5 (DT)  [...]  [ 1417.075653] Call trace:  [ 1417.075662]  brcmf_p2p_send_action_frame+0x23c/0xc58 [brcmfmac]  [ 1417.075738]  brcmf_cfg80211_mgmt_tx+0x304/0x5c0 [brcmfmac]  [ 1417.075810]  cfg80211_mlme_mgmt_tx+0x1b0/0x428 [cfg80211]  [ 1417.076067]  nl80211_tx_mgmt+0x238/0x388 [cfg80211]  [ 1417.076281]  genl_family_rcv_msg_doit+0xe0/0x158  [ 1417.076302]  genl_rcv_msg+0x220/0x2a0  [ 1417.076317]  netlink_rcv_skb+0x68/0x140  [ 1417.076330]  genl_rcv+0x40/0x60  [ 1417.076343]  netlink_unicast+0x330/0x3b8  [ 1417.076357]  netlink_sendmsg+0x19c/0x3f8  [ 1417.076370]  __sock_sendmsg+0x64/0xc0  [ 1417.076391]  ____sys_sendmsg+0x268/0x2a0  [ 1417.076408]  ___sys_sendmsg+0xb8/0x118  [ 1417.076427]  __sys_sendmsg+0x90/0xf8  [ 1417.076445]  __arm64_sys_sendmsg+0x2c/0x40  [ 1417.076465]  invoke_syscall+0x50/0x120  [ 1417.076486]  el0_svc_common.constprop.0+0x48/0xf0  [ 1417.076506]  do_el0_svc+0x24/0x38  [ 1417.076525]  el0_svc+0x30/0x100  [ 1417.076548]  el0t_64_sync_handler+0x100/0x130  [ 1417.076569]  el0t_64_sync+0x190/0x198  [ 1417.076589] Code: f9401e80 aa1603e2 f9403be1 5280e483 (f9400000)  Fix this, by always using the vif corresponding to the wdev on which the Action frame Transmission request was initiated by the userspace. This way, even if P2P vif is not available, the IOVAR is sent to firmware on AP vif and the ANQP Query RESP Action frame is transmitted without crashing the driver.  Move init_completion() for \"send_af_done\" from brcmf_p2p_create_p2pdev() to brcmf_p2p_attach(). Because the former function would not get executed when only hostapd is managing wlan interface, and it is not safe to do reinit_completion() later in brcmf_p2p_tx_action_frame(), without any prior init_completion().  And in the brcmf_p2p_tx_action_frame() function, the condition check for P2P Presence response frame is not needed, since the wpa_supplicant is properly sending the P2P Presense Response frame on the P2P-GO vif instead of the P2P-Device vif.  [Cc stable]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40322",
                                "url": "https://ubuntu.com/security/CVE-2025-40322",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fbdev: bitblit: bound-check glyph index in bit_putcs*  bit_putcs_aligned()/unaligned() derived the glyph pointer from the character value masked by 0xff/0x1ff, which may exceed the actual font's glyph count and read past the end of the built-in font array. Clamp the index to the actual glyph count before computing the address.  This fixes a global out-of-bounds read reported by syzbot.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40211",
                                "url": "https://ubuntu.com/security/CVE-2025-40211",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ACPI: video: Fix use-after-free in acpi_video_switch_brightness()  The switch_brightness_work delayed work accesses device->brightness and device->backlight, freed by acpi_video_dev_unregister_backlight() during device removal.  If the work executes after acpi_video_bus_unregister_backlight() frees these resources, it causes a use-after-free when acpi_video_switch_brightness() dereferences device->brightness or device->backlight.  Fix this by calling cancel_delayed_work_sync() for each device's switch_brightness_work in acpi_video_bus_remove_notify_handler() after removing the notify handler that queues the work. This ensures the work completes before the memory is freed.  [ rjw: Changelog edit ]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-21 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40324",
                                "url": "https://ubuntu.com/security/CVE-2025-40324",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: Fix crash in nfsd4_read_release()  When tracing is enabled, the trace_nfsd_read_done trace point crashes during the pynfs read.testNoFh test.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40083",
                                "url": "https://ubuntu.com/security/CVE-2025-40083",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: Fix null-deref in agg_dequeue  To prevent a potential crash in agg_dequeue (net/sched/sch_qfq.c) when cl->qdisc->ops->peek(cl->qdisc) returns NULL, we check the return value before using it, similar to the existing approach in sch_hfsc.c.  To avoid code duplication, the following changes are made:  1. Changed qdisc_warn_nonwc(include/net/pkt_sched.h) into a static inline function.  2. Moved qdisc_peek_len from net/sched/sch_hfsc.c to include/net/pkt_sched.h so that sch_qfq can reuse it.  3. Applied qdisc_peek_len in agg_dequeue to avoid crashing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-29 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-41014",
                                "url": "https://ubuntu.com/security/CVE-2024-41014",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  xfs: add bounds checking to xlog_recover_process_data  There is a lack of verification of the space occupied by fixed members of xlog_op_header in the xlog_recover_process_data.  We can create a crafted image to trigger an out of bounds read by following these steps:     1) Mount an image of xfs, and do some file operations to leave records     2) Before umounting, copy the image for subsequent steps to simulate        abnormal exit. Because umount will ensure that tail_blk and        head_blk are the same, which will result in the inability to enter        xlog_recover_process_data     3) Write a tool to parse and modify the copied image in step 2     4) Make the end of the xlog_op_header entries only 1 byte away from        xlog_rec_header->h_size     5) xlog_rec_header->h_num_logops++     6) Modify xlog_rec_header->h_crc  Fix: Add a check to make sure there is sufficient space to access fixed members of xlog_op_header.",
                                "cve_priority": "low",
                                "cve_public_date": "2024-07-29 07:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2022-49267",
                                "url": "https://ubuntu.com/security/CVE-2022-49267",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mmc: core: use sysfs_emit() instead of sprintf()  sprintf() (still used in the MMC core for the sysfs output) is vulnerable to the buffer overflow.  Use the new-fangled sysfs_emit() instead.  Found by Linux Verification Center (linuxtesting.org) with the SVACE static analysis tool.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-26 07:01:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-21780",
                                "url": "https://ubuntu.com/security/CVE-2025-21780",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdgpu: avoid buffer overflow attach in smu_sys_set_pp_table()  It malicious user provides a small pptable through sysfs and then a bigger pptable, it may cause buffer overflow attack in function smu_sys_set_pp_table().",
                                "cve_priority": "high",
                                "cve_public_date": "2025-02-27 03:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux: 5.15.0-172.182 -proposed tracker (LP: #2141059)",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704)",
                            "    - Revert \"xfrm: destroy xfrm_state synchronously on net exit path\"",
                            "    - xfrm: flush all states in xfrm_state_fini",
                            "    - dpaa2-mac: bail if the dpmacs fwnode is not found",
                            "    - drm/i915/selftests: Fix inconsistent IS_ERR and PTR_ERR",
                            "    - leds: Replace all non-returning strlcpy with strscpy",
                            "    - leds: spi-byte: Use devm_led_classdev_register_ext()",
                            "    - Documentation: process: Also mention Sasha Levin as stable tree",
                            "      maintainer",
                            "    - USB: serial: option: add Foxconn T99W760",
                            "    - USB: serial: option: add Telit Cinterion FE910C04 new compositions",
                            "    - USB: serial: option: move Telit 0x10c7 composition in the right place",
                            "    - USB: serial: ftdi_sio: match on interface number for jtag",
                            "    - serial: add support of CPCI cards",
                            "    - USB: serial: belkin_sa: fix TIOCMBIS and TIOCMBIC",
                            "    - USB: serial: kobil_sct: fix TIOCMBIS and TIOCMBIC",
                            "    - spi: xilinx: increase number of retries before declaring stall",
                            "    - spi: imx: keep dma request disabled before dma transfer setup",
                            "    - pinctrl: qcom: msm: Fix deadlock in pinmux configuration",
                            "    - platform/x86: acer-wmi: Ignore backlight event",
                            "    - platform/x86: huawei-wmi: add keys for HONOR models",
                            "    - HID: elecom: Add support for ELECOM M-XT3URBK (018F)",
                            "    - drm/panel: visionox-rm69299: Don't clear all mode flags",
                            "    - USB: Fix descriptor count when handling invalid MBIM extended descriptor",
                            "    - irqchip/qcom-irq-combiner: Fix section mismatch",
                            "    - rculist: Add hlist_nulls_replace_rcu() and",
                            "      hlist_nulls_replace_init_rcu()",
                            "    - inet: Avoid ehash lookup race in inet_ehash_insert()",
                            "    - iio: imu: st_lsm6dsx: introduce st_lsm6dsx_device_set_enable routine",
                            "    - iio: imu: st_lsm6dsx: discard samples during filters settling time",
                            "    - iio: imu: st_lsm6dsx: Fix measurement unit for odr struct member",
                            "    - arm64: dts: imx8mm-venice-gw72xx: remove unused sdhc1 pinctrl",
                            "    - uio: uio_fsl_elbc_gpcm:: Add null pointer check to",
                            "      uio_fsl_elbc_gpcm_probe",
                            "    - crypto: hisilicon/qm - restore original qos values",
                            "    - s390/smp: Fix fallback CPU detection",
                            "    - s390/ap: Don't leak debug feature files if AP instructions are not",
                            "      available",
                            "    - firmware: imx: scu-irq: fix OF node leak in",
                            "    - phy: mscc: Fix PTP for VSC8574 and VSC8572",
                            "    - sctp: Defer SCTP_DBG_OBJCNT_DEC() to sctp_destroy_sock().",
                            "    - compiler-gcc.h: Define __SANITIZE_ADDRESS__ under hwaddress sanitizer",
                            "    - kmsan: introduce __no_sanitize_memory and __no_kmsan_checks",
                            "    - x86: kmsan: don't instrument stack walking functions",
                            "    - x86/dumpstack: Prevent KASAN false positive warnings in __show_regs()",
                            "    - pinctrl: stm32: fix hwspinlock resource leak in probe function",
                            "    - i3c: fix refcount inconsistency in i3c_master_register",
                            "    - i3c: master: svc: Prevent incomplete IBI transaction",
                            "    - power: supply: wm831x: Check wm831x_set_bits() return value",
                            "    - power: supply: apm_power: only unset own apm_get_power_status",
                            "    - scsi: target: Do not write NUL characters into ASCII configfs output",
                            "    - spi: tegra210-quad: use device_reset method",
                            "    - spi: tegra210-quad: add new chips to compatible",
                            "    - spi: tegra210-quad: combined sequence mode",
                            "    - spi: tegra210-quad: modify chip select (CS) deactivation",
                            "    - mfd: da9055: Fix missing regmap_del_irq_chip() in error path",
                            "    - ext4: minor defrag code improvements",
                            "    - ext4: correct the checking of quota files before moving extents",
                            "    - perf/x86/intel: Correct large PEBS flag check",
                            "    - regulator: core: disable supply if enabling main regulator fails",
                            "    - nbd: clean up return value checking of sock_xmit()",
                            "    - nbd: partition nbd_read_stat() into nbd_read_reply() and",
                            "      nbd_handle_reply()",
                            "    - scsi: stex: Fix reboot_notifier leak in probe error path",
                            "    - dt-bindings: PCI: convert amlogic,meson-pcie.txt to dt-schema",
                            "    - dt-bindings: PCI: amlogic: Fix the register name of the DBI region",
                            "    - RDMA/rtrs: server: Fix error handling in get_or_create_srv",
                            "    - ntfs3: init run lock for extend inode",
                            "    - powerpc/32: Fix unpaired stwcx. on interrupt exit",
                            "    - wifi: cw1200: Fix potential memory leak in cw1200_bh_rx_helper()",
                            "    - coresight: etm4x: Save restore TRFCR_EL1",
                            "    - coresight: etm4x: Use Trace Filtering controls dynamically",
                            "    - coresight-etm4x: add isb() before reading the TRCSTATR",
                            "    - coresight: etm4x: Extract the trace unit controlling",
                            "    - coresight: etm4x: Add context synchronization before enabling trace",
                            "    - clk: renesas: r9a06g032: Fix memory leak in error path",
                            "    - lib/vsprintf: Check pointer before dereferencing in time_and_date()",
                            "    - ACPI: property: Fix fwnode refcount leak in",
                            "      acpi_fwnode_graph_parse_endpoint()",
                            "    - scsi: sim710: Fix resource leak by adding missing ioport_unmap() calls",
                            "    - leds: netxbig: Fix GPIO descriptor leak in error paths",
                            "    - PCI: keystone: Exit ks_pcie_probe() for invalid mode",
                            "    - ps3disk: use memcpy_{from,to}_bvec index",
                            "    - selftests/bpf: Fix failure paths in send_signal test",
                            "    - watchdog: wdat_wdt: Stop watchdog when uninstalling module",
                            "    - watchdog: wdat_wdt: Fix ACPI table leak in probe function",
                            "    - NFSD/blocklayout: Fix minlength check in proc_layoutget",
                            "    - powerpc/64s/ptdump: Fix kernel_hash_pagetable dump for ISA v3.00 HPTE",
                            "      format",
                            "    - fs/ntfs3: Remove unused mi_mark_free",
                            "    - fs/ntfs3: Add new argument is_mft to ntfs_mark_rec_free",
                            "    - fs/ntfs3: Make ni_ins_new_attr return error",
                            "    - fs/ntfs3: out1 also needs to put mi",
                            "    - fs/ntfs3: Prevent memory leaks in add sub record",
                            "    - drm/mediatek: Fix CCORR mtk_ctm_s31_32_to_s1_n function issue",
                            "    - pwm: bcm2835: Make sure the channel is enabled after pwm_request()",
                            "    - mfd: mt6397-irq: Fix missing irq_domain_remove() in error path",
                            "    - mfd: mt6358-irq: Fix missing irq_domain_remove() in error path",
                            "    - usb: chaoskey: fix locking for O_NONBLOCK",
                            "    - usb: dwc2: disable platform lowlevel hw resources during shutdown",
                            "    - usb: dwc2: fix hang during shutdown if set as peripheral",
                            "    - usb: dwc2: fix hang during suspend if set as peripheral",
                            "    - usb: raw-gadget: cap raw_io transfer length to KMALLOC_MAX_SIZE",
                            "    - selftests/bpf: skip test_perf_branches_hw() on unsupported platforms",
                            "    - selftests/bpf: Improve reliability of test_perf_branches_no_hw()",
                            "    - crypto: ccree - Correctly handle return of sg_nents_for_len",
                            "    - staging: fbtft: core: fix potential memory leak in fbtft_probe_common()",
                            "    - PCI: dwc: Fix wrong PORT_LOGIC_LTSSM_STATE_MASK definition",
                            "    - wifi: ieee80211: correct FILS status codes",
                            "    - backlight: led_bl: Take led_access lock when required",
                            "    - backlight: lp855x: Fix lp855x.h kernel-doc warnings",
                            "    - iommu/arm-smmu-qcom: Enable use of all SMR groups when running bare-",
                            "      metal",
                            "    - RDMA/irdma: Fix data race in irdma_sc_ccq_arm",
                            "    - RDMA/irdma: Fix data race in irdma_free_pble",
                            "    - ASoC: fsl_xcvr: Add Counter registers",
                            "    - ASoC: fsl_xcvr: Add support for i.MX93 platform",
                            "    - ASoC: fsl_xcvr: clear the channel status control memory",
                            "    - drm/amd/display: Fix logical vs bitwise bug in",
                            "      get_embedded_panel_info_v2_1()",
                            "    - ACPI: processor_core: fix map_x2apic_id for amd-pstate on am4",
                            "    - ext4: remove unused return value of __mb_check_buddy",
                            "    - ext4: improve integrity checking in __mb_check_buddy by enhancing",
                            "      order-0 validation",
                            "    - vdpa: Introduce and use vdpa device get, set config helpers",
                            "    - vdpa: Introduce query of device config layout",
                            "    - vdpa: Sync calls set/get config/status with cf_mutex",
                            "    - virtio_vdpa: fix misleading return in void function",
                            "    - virtio: fix virtqueue_set_affinity() docs",
                            "    - ASoC: Intel: catpt: Fix error path in hw_params()",
                            "    - netfilter: flowtable: check for maximum number of encapsulations in",
                            "      bridge vlan",
                            "    - netfilter: nf_conncount: reduce unnecessary GC",
                            "    - netfilter: nf_conncount: rework API to use sk_buff directly",
                            "    - netfilter: nft_connlimit: update the count if add was skipped",
                            "    - net: stmmac: fix rx limit check in stmmac_rx_zc()",
                            "    - mtd: lpddr_cmds: fix signed shifts in lpddr_cmds",
                            "    - remoteproc: qcom_q6v5_wcss: fix parsing of qcom,halt-regs",
                            "    - perf tools: Fix split kallsyms DSO counting",
                            "    - pinctrl: single: Fix PIN_CONFIG_BIAS_DISABLE handling",
                            "    - pinctrl: single: Fix incorrect type for error return variable",
                            "    - fbdev: ssd1307fb: fix potential page leak in ssd1307fb_probe()",
                            "    - NFS: Label the dentry with a verifier in nfs_rmdir() and nfs_unlink()",
                            "    - NFS: don't unhash dentry during unlink/rename",
                            "    - NFS: Avoid changing nlink when file removes and attribute updates race",
                            "    - fs/nls: Fix utf16 to utf8 conversion",
                            "    - NFSv4: Add some support for case insensitive filesystems",
                            "    - NFS: Fix the verifier for case sensitive filesystem in nfs_atomic_open()",
                            "    - NFS: Initialise verifiers for visible dentries in nfs_atomic_open()",
                            "    - Revert \"nfs: ignore SB_RDONLY when remounting nfs\"",
                            "    - Revert \"nfs: clear SB_RDONLY before getting superblock\"",
                            "    - Revert \"nfs: ignore SB_RDONLY when mounting nfs\"",
                            "    - fs_context: drop the unused lsm_flags member",
                            "    - fs/nls: Fix inconsistency between utf8_to_utf32() and utf32_to_utf8()",
                            "    - platform/x86: asus-wmi: use brightness_set_blocking() for kbd led",
                            "    - ASoC: bcm: bcm63xx-pcm-whistler: Check return value of",
                            "      of_dma_configure()",
                            "    - ASoC: ak4458: Disable regulator when error happens",
                            "    - ASoC: ak5558: Disable regulator when error happens",
                            "    - blk-mq: Abort suspend when wakeup events are pending",
                            "    - block: fix comment for op_is_zone_mgmt() to include RESET_ALL",
                            "    - dma/pool: eliminate alloc_pages warning in atomic_pool_expand",
                            "    - ALSA: uapi: Fix typo in asound.h comment",
                            "    - ARM: 9464/1: fix input-only operand modification in",
                            "      load_unaligned_zeropad()",
                            "    - dm-raid: fix possible NULL dereference with undefined raid type",
                            "    - dm log-writes: Add missing set_freezable() for freezable kthread",
                            "    - efi/cper: Add a new helper function to print bitmasks",
                            "    - efi/cper: Adjust infopfx size to accept an extra space",
                            "    - efi/cper: align ARM CPER type with UEFI 2.9A/2.10 specs",
                            "    - ocfs2: fix memory leak in ocfs2_merge_rec_left()",
                            "    - usb: gadget: tegra-xudc: Always reinitialize data toggle when clear halt",
                            "    - usb: phy: Initialize struct usb_phy list_head",
                            "    - ASoC: fsl_xcvr: get channel status data when PHY is not exists",
                            "    - NFS: Fix missing unlock in nfs_unlink()",
                            "    - netfilter: nf_conncount: garbage collection is not skipped when jiffies",
                            "      wrap around",
                            "    - coresight: etm4x: Correct polling IDLE bit",
                            "    - spi: tegra210-quad: Fix validate combined sequence",
                            "    - spi: tegra210-quad: Fix X1_X2_X4 encoding and support x4 transfers",
                            "    - bpf, arm64: Do not audit capability check in do_jit()",
                            "    - btrfs: fix memory leak of fs_devices in degraded seed device path",
                            "    - x86/ptrace: Always inline trivial accessors",
                            "    - ACPI: property: Use ACPI functions in acpi_graph_get_next_endpoint()",
                            "      only",
                            "    - cpufreq: s5pv210: fix refcount leak",
                            "    - livepatch: Match old_sympos 0 and 1 in klp_find_func()",
                            "    - fs/ntfs3: Support timestamps prior to epoch",
                            "    - hfsplus: fix volume corruption issue for generic/070",
                            "    - hfsplus: fix volume corruption issue for generic/073",
                            "    - btrfs: scrub: always update btrfs_scrub_progress::last_physical",
                            "    - Bluetooth: btusb: Add new VID/PID 13d3/3533 for RTL8821CE",
                            "    - ipvlan: Ignore PACKET_LOOPBACK in handle_mode_l2()",
                            "    - broadcom: b44: prevent uninitialized value usage",
                            "    - netfilter: nf_conncount: fix leaked ct in error paths",
                            "    - nfc: pn533: Fix error code in pn533_acr122_poweron_rdr()",
                            "    - ethtool: use phydev variable",
                            "    - net/ethtool/ioctl: remove if n_stats checks from ethtool_get_phy_stats",
                            "    - net/ethtool/ioctl: split ethtool_get_phy_stats into multiple helpers",
                            "    - net/mlx5: fw_tracer, Add support for unrecognized string",
                            "    - net/mlx5: fw_tracer, Handle escaped percent properly",
                            "    - net: hns3: Align type of some variables with their print type",
                            "    - net: hns3: using the num_tqps to check whether tqp_index is out of range",
                            "      when vf get ring info from mbx",
                            "    - HID: input: map HID_GD_Z to ABS_DISTANCE for stylus/pen",
                            "    - Input: i8042 - add TUXEDO InfinityBook Max Gen10 AMD to i8042 quirk",
                            "      table",
                            "    - ACPI: CPPC: Fix missing PCC check for guaranteed_perf",
                            "    - spi: fsl-cpm: Check length parity before switching to 16 bit mode",
                            "    - mmc: sdhci-esdhc-imx: add alternate ARCH_S32 dependency to Kconfig",
                            "    - ALSA: vxpocket: Fix resource leak in vxpocket_probe error path",
                            "    - ALSA: pcmcia: Fix resource leak in snd_pdacf_probe error path",
                            "    - ipmi: Fix the race between __scan_channels() and deliver_response()",
                            "    - ipmi: Fix __scan_channels() failing to rescan channels",
                            "    - firmware: imx: scu-irq: Init workqueue before request mbox channel",
                            "    - ti-sysc: allow OMAP2 and OMAP4 timers to be reserved on AM33xx",
                            "    - clk: mvebu: cp110 add CLK_IGNORE_UNUSED to pcie_x10, pcie_x11 & pcie_x4",
                            "    - powerpc/addnote: Fix overflow on 32-bit builds",
                            "    - scsi: qla2xxx: Fix lost interrupts with qlini_mode=disabled",
                            "    - scsi: qla2xxx: Fix initiator mode with qlini_mode=exclusive",
                            "    - scsi: qla2xxx: Use reinit_completion on mbx_intr_comp",
                            "    - exfat: fix remount failure in different process environments",
                            "    - usbip: Fix locking bug in RT-enabled kernels",
                            "    - usb: xhci: limit run_graceperiod for only usb 3.0 devices",
                            "    - usb: usb-storage: No additional quirks need to be added to the EL-R12",
                            "      optical drive.",
                            "    - serial: sprd: Return -EPROBE_DEFER when uart clock is not ready",
                            "    - nvme-fc: don't hold rport lock when putting ctrl",
                            "    - platform/x86/intel/hid: Add Dell Pro Rugged 10/12 tablet to VGBS DMI",
                            "      quirks",
                            "    - vhost/vsock: improve RCU read sections around vhost_vsock_get()",
                            "    - mmc: sdhci-msm: Avoid early clock doubling during HS400 transition",
                            "    - lib/crypto: x86/blake2s: Fix 32-bit arg treated as 64-bit",
                            "    - block: rate-limit capacity change info log",
                            "    - floppy: fix for PAGE_SIZE != 4KB",
                            "    - fs/ntfs3: fix mount failure for sparse runs in run_unpack()",
                            "    - ktest.pl: Fix uninitialized var in config-bisect.pl",
                            "    - ext4: clear i_state_flags when alloc inode",
                            "    - ext4: fix incorrect group number assertion in mb_check_buddy",
                            "    - ext4: align max orphan file size with e2fsprogs limit",
                            "    - jbd2: use a weaker annotation in journal handling",
                            "    - media: v4l2-mem2mem: Fix outdated documentation",
                            "    - usb: usb-storage: Maintain minimal modifications to the bcdDevice range.",
                            "    - media: pvrusb2: Fix incorrect variable used in trace message",
                            "    - phy: broadcom: bcm63xx-usbh: fix section mismatches",
                            "    - USB: lpc32xx_udc: Fix error handling in probe",
                            "    - usb: phy: isp1301: fix non-OF device reference imbalance",
                            "    - usb: dwc3: of-simple: fix clock resource leak in dwc3_of_simple_probe",
                            "    - usb: renesas_usbhs: Fix a resource leak in usbhs_pipe_malloc()",
                            "    - intel_th: Fix error handling in intel_th_output_open",
                            "    - cpufreq: nforce2: fix reference count leak in nforce2",
                            "    - NFSD: use correct reservation type in nfsd4_scsi_fence_client",
                            "    - tools/testing/nvdimm: Use per-DIMM device handle",
                            "    - KVM: x86: WARN if hrtimer callback for periodic APIC timer fires with",
                            "      period=0",
                            "    - KVM: x86: Explicitly set new periodic hrtimer expiration in",
                            "      apic_timer_fn()",
                            "    - KVM: nSVM: Propagate SVM_EXIT_CR0_SEL_WRITE correctly for LMSW emulation",
                            "    - KVM: nSVM: Set exit_code_hi to -1 when synthesizing SVM_EXIT_ERR (failed",
                            "      VMRUN)",
                            "    - KVM: nSVM: Clear exit_code_hi in VMCB when synthesizing nested VM-Exits",
                            "    - PM: runtime: Do not clear needs_force_resume with enabled runtime PM",
                            "    - nfsd: Mark variable __maybe_unused to avoid W=1 build break",
                            "    - svcrdma: return 0 on success from svc_rdma_copy_inline_range",
                            "    - drm/amd/display: Use GFP_ATOMIC in dc_create_plane_state()",
                            "    - amba: tegra-ahb: Fix device leak on SMMU enable",
                            "    - soc: qcom: ocmem: fix device leak on lookup",
                            "    - soc: amlogic: canvas: fix device leak on lookup",
                            "    - rpmsg: glink: fix rpmsg device leak",
                            "    - i2c: amd-mp2: fix reference leak in MP2 PCI device",
                            "    - hwmon: (max16065) Use local variable to avoid TOCTOU",
                            "    - hwmon: (w83l786ng) Convert macros to functions to avoid TOCTOU",
                            "    - i40e: fix scheduling in set_rx_mode",
                            "    - i40e: Refactor argument of several client notification functions",
                            "    - i40e: Refactor argument of i40e_detect_recover_hung()",
                            "    - i40e: validate ring_len parameter against hardware-specific values",
                            "    - net: mdio: aspeed: move reg accessing part into separate functions",
                            "    - net: mdio: aspeed: add dummy read to avoid read-after-write issue",
                            "    - net: openvswitch: Avoid needlessly taking the RTNL on vport destroy",
                            "    - platform/x86: msi-laptop: add missing sysfs_remove_group()",
                            "    - platform/x86: ibm_rtl: fix EBDA signature search pointer arithmetic",
                            "    - genalloc.h: fix htmldocs warning",
                            "    - firewire: nosy: Fix dma_free_coherent() size",
                            "    - net: dsa: b53: skip multicast entries for fdb_dump()",
                            "    - net: bridge: Describe @tunnel_hash member in net_bridge_vlan_group",
                            "      struct",
                            "    - RDMA/efa: Remove possible negative shift",
                            "    - RDMA/core: Fix logic error in ib_get_gids_from_rdma_hdr()",
                            "    - RDMA/bnxt_re: Fix incorrect BAR check in bnxt_qplib_map_creq_db()",
                            "    - RDMA/bnxt_re: Fix IB_SEND_IP_CSUM handling in post_send",
                            "    - RDMA/bnxt_re: Fix to use correct page size for PDE table",
                            "    - RDMA/rtrs: Fix clt_path::max_pages_per_mr calculation",
                            "    - RDMA/bnxt_re: fix dma_free_coherent() pointer",
                            "    - selftests/ftrace: traceonoff_triggers: strip off names",
                            "    - ASoC: stm32: sai: fix device leak on probe",
                            "    - ASoC: qcom: q6asm-dai: perform correct state check before closing",
                            "    - ASoC: qcom: q6adm: the the copp device only during last instance",
                            "    - ASoC: qcom: qdsp6: q6asm-dai: set 10 ms period and buffer alignment.",
                            "    - iommu/apple-dart: fix device leak on of_xlate()",
                            "    - iommu/exynos: fix device leak on of_xlate()",
                            "    - iommu/ipmmu-vmsa: fix device leak on of_xlate()",
                            "    - iommu/mediatek-v1: fix device leak on probe_device()",
                            "    - iommu/mediatek: fix device leak on of_xlate()",
                            "    - iommu/omap: fix device leaks on probe_device()",
                            "    - iommu/sun50i: fix device leak on of_xlate()",
                            "    - iommu/tegra: fix device leak on probe_device()",
                            "    - HID: logitech-dj: Remove duplicate error logging",
                            "    - PCI/PM: Reinstate clearing state_saved in legacy and !PM codepaths",
                            "    - leds: leds-lp50xx: Allow LED 0 to be added to module bank",
                            "    - leds: leds-lp50xx: LP5009 supports 3 modules for a total of 9 LEDs",
                            "    - mfd: altera-sysmgr: Fix device leak on sysmgr regmap lookup",
                            "    - mfd: max77620: Fix potential IRQ chip conflict when probing two devices",
                            "    - media: rc: st_rc: Fix reset control resource leak",
                            "    - parisc: entry.S: fix space adjustment on interruption for 64-bit",
                            "      userspace",
                            "    - parisc: entry: set W bit for !compat tasks in syscall_restore_rfi()",
                            "    - dm-ebs: Mark full buffer dirty even on partial write",
                            "    - fbdev: gbefb: fix to use physical address instead of dma address",
                            "    - fbdev: pxafb: Fix multiple clamped values in pxafb_adjust_timing",
                            "    - fbdev: tcx.c fix mem_map to correct smem_start offset",
                            "    - media: cec: Fix debugfs leak on bus_register() failure",
                            "    - media: msp3400: Avoid possible out-of-bounds array accesses in",
                            "      msp3400c_thread()",
                            "    - media: TDA1997x: Remove redundant cancel_delayed_work in probe",
                            "    - media: i2c: ADV7604: Remove redundant cancel_delayed_work in probe",
                            "    - media: i2c: adv7842: Remove redundant cancel_delayed_work in probe",
                            "    - idr: fix idr_alloc() returning an ID out of range",
                            "    - fjes: Add missing iounmap in fjes_hw_init()",
                            "    - nfsd: Drop the client reference in client_states_open()",
                            "    - net: usb: sr9700: fix incorrect command used to write single register",
                            "    - drm/msm/a6xx: Fix out of bound IO access in a6xx_get_gmu_registers",
                            "    - drm/nouveau/dispnv50: Don't call drm_atomic_get_crtc_state() in",
                            "      prepare_fb",
                            "    - mm/damon/tests/vaddr-kunit: handle alloc failures in",
                            "      damon_test_split_evenly_fail()",
                            "    - mm/damon/tests/vaddr-kunit: handle alloc failures on",
                            "      damon_do_test_apply_three_regions()",
                            "    - mm/damon/tests/vaddr-kunit: handle alloc failures on",
                            "      damon_test_split_evenly_succ()",
                            "    - mm/damon/tests/core-kunit: handle allocation failures in",
                            "      damon_test_regions()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      damon_test_split_at()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      dasmon_test_merge_regions_of()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      damon_test_merge_two()",
                            "    - mm/damon/tests/core-kunit: handle memory failure from",
                            "      damon_test_target()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      damon_test_split_regions_of()",
                            "    - mm/damon/tests/core-kunit: handle memory alloc failure from",
                            "      damon_test_aggregate()",
                            "    - kbuild: Use CRC32 and a 1MiB dictionary for XZ compressed modules",
                            "    - virtio_console: fix order of fields cols and rows",
                            "    - usb: xhci: move link chain bit quirk checks into one helper function.",
                            "    - xhci: dbgtty: use IDR to support several dbc instances.",
                            "    - xhci: dbgtty: fix device unregister",
                            "    - jbd2: fix the inconsistency between checksum and data in memory for",
                            "      journal sb",
                            "    - btrfs: don't rewrite ret from inode_permission",
                            "    - wifi: mt76: Fix DTS power-limits on little endian systems",
                            "    - ALSA: wavefront: Clear substream pointers on close",
                            "    - ALSA: wavefront: Use standard print API",
                            "    - NFSD: Clear SECLABEL in the suppattr_exclcreat bitmap",
                            "    - KVM: nVMX: Immediately refresh APICv controls as needed on nested VM-",
                            "      Exit",
                            "    - xfs: fix a memory leak in xfs_buf_item_init()",
                            "    - f2fs: fix to detect recoverable inode during dryrun of",
                            "      find_fsync_dnodes()",
                            "    - f2fs: fix to propagate error from f2fs_enable_checkpoint()",
                            "    - usb: dwc3: keep susphy enabled during exit to avoid controller faults",
                            "    - mptcp: pm: ignore unknown endpoint flags",
                            "    - usb: ohci-nxp: Use helper function devm_clk_get_enabled()",
                            "    - usb: ohci-nxp: fix device leak on probe failure",
                            "    - ARM: dts: microchip: sama7g5: fix uart fifo size to 32",
                            "    - KVM: SVM: Mark VMCB_NPT as dirty on nested VMRUN",
                            "    - media: mediatek: vcodec: Fix a reference leak in",
                            "      mtk_vcodec_fw_vpu_init()",
                            "    - media: vpif_capture: fix section mismatch",
                            "    - media: verisilicon: Protect G2 HEVC decoder against invalid DPB index",
                            "    - media: samsung: exynos4-is: fix potential ABBA deadlock on init",
                            "    - media: renesas: rcar_drif: fix device node reference leak in",
                            "      rcar_drif_bond_enabled",
                            "    - powerpc/pseries/cmm: call balloon_devinfo_init() also without",
                            "      CONFIG_BALLOON_COMPACTION",
                            "    - PCI: brcmstb: Fix disabling L0s capability",
                            "    - iommu/qcom: fix device leak on of_xlate()",
                            "    - r8169: fix RTL8117 Wake-on-Lan in DASH mode",
                            "    - ASoC: stm: Use dev_err_probe() helper",
                            "    - ASoC: stm32: sai: Use the devm_clk_get_optional() helper",
                            "    - ASoC: stm32: sai: fix clk prepare imbalance on probe failure",
                            "    - mm/balloon_compaction: make balloon page compaction callbacks static",
                            "    - mm/balloon_compaction: we cannot have isolated pages in the balloon list",
                            "    - mm/balloon_compaction: convert balloon_page_delete() to",
                            "      balloon_page_finalize()",
                            "    - powerpc/pseries/cmm: adjust BALLOON_MIGRATE when migrating pages",
                            "    - lockd: fix vfs_test_lock() calls",
                            "    - drm/gma500: Remove unused helper psb_fbdev_fb_setcolreg()",
                            "    - KVM: arm64: sys_regs: disable -Wuninitialized-const-pointer warning",
                            "    - x86: remove __range_not_ok()",
                            "    - pwm: stm32: Always program polarity",
                            "    - ext4: factor out ext4_hash_info_init()",
                            "    - ext4: fix error message when rejecting the default hash",
                            "    - firmware: arm_scmi: Fix unused notifier-block in unregister",
                            "    - Revert \"iommu/amd: Skip enabling command/event buffers for kdump\"",
                            "    - net: ethtool: fix the error condition in ethtool_get_phy_stats_ethtool()",
                            "    - usb: gadget: lpc32xx_udc: fix clock imbalance in error path",
                            "    - atm: Fix dma_free_coherent() size",
                            "    - mei: me: add nova lake point S DID",
                            "    - lib/crypto: aes: Fix missing MMU protection for AES S-box",
                            "    - drm/pl111: Fix error handling in pl111_amba_probe",
                            "    - libceph: make calc_target() set t->paused, not just clear it",
                            "    - ext4: introduce ITAIL helper",
                            "    - csky: fix csky_cmpxchg_fixup not working",
                            "    - ARM: 9461/1: Disable HIGHPTE on PREEMPT_RT kernels",
                            "    - alpha: don't reference obsolete termio struct for TC* constants",
                            "    - NFSv4: ensure the open stateid seqid doesn't go backwards",
                            "    - NFS: Fix up the automount fs_context to use the correct cred",
                            "    - scsi: ipr: Enable/disable IRQD_NO_BALANCING during reset",
                            "    - scsi: Revert \"scsi: libsas: Fix exp-attached device scan after probe",
                            "      failure scanned in again after probe failed\"",
                            "    - arm64: dts: add off-on-delay-us for usdhc2 regulator",
                            "    - ARM: dts: imx6q-ba16: fix RTC interrupt level",
                            "    - netfilter: nft_synproxy: avoid possible data-race on update operation",
                            "    - netfilter: nf_tables: fix memory leak in nf_tables_newrule()",
                            "    - netfilter: nf_conncount: update last_gc only when GC has been performed",
                            "    - bridge: fix C-VLAN preservation in 802.1ad vlan_tunnel egress",
                            "    - inet: ping: Fix icmp out counting",
                            "    - netdev: preserve NETIF_F_ALL_FOR_ALL across TSO updates",
                            "    - net/mlx5e: Don't print error message due to invalid module",
                            "    - eth: bnxt: move and rename reset helpers",
                            "    - bnxt_en: Fix potential data corruption with HW GRO/LRO",
                            "    - HID: quirks: work around VID/PID conflict for appledisplay",
                            "    - net: enetc: fix build warning when PAGE_SIZE is greater than 128K",
                            "    - arp: do not assume dev_hard_header() does not change skb->head",
                            "    - NFS: trace: show TIMEDOUT instead of 0x6e",
                            "    - nfs_common: factor out nfs_errtbl and nfs_stat_to_errno",
                            "    - NFSD: Remove NFSERR_EAGAIN",
                            "    - pinctrl: qcom: lpass-lpi: Remove duplicate assignment of of_gpio_n_cells",
                            "    - pinctrl: qcom: lpass-lpi: mark the GPIO controller as sleeping",
                            "    - powercap: fix race condition in register_control_type()",
                            "    - powercap: fix sscanf() error return value handling",
                            "    - ASoC: fsl_sai: Add missing registers to cache default",
                            "    - scsi: sg: Fix occasional bogus elapsed time that exceeds timeout",
                            "    - firmware: imx: scu-irq: Set mu_resource_id before get handle",
                            "    - efi/cper: Fix cper_bits_to_str buffer handling and return value",
                            "    - NFS: unlink/rmdir shouldn't call d_delete() twice on ENOENT",
                            "    - NFS: add barriers when testing for NFS_FSDATA_BLOCKED",
                            "    - Linux 5.15.198",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71182",
                            "    - can: j1939: make j1939_session_activate() fail if device is no longer",
                            "      registered",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2022-49465",
                            "    - blk-throttle: Set BIO_THROTTLED when bio has been throttled",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71180",
                            "    - counter: interrupt-cnt: Drop IRQF_NO_THREAD flag",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22980",
                            "    - nfsd: provide locking for v4_end_grace",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-23021",
                            "    - net: usb: pegasus: fix memory leak in update_eth_regs_async()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22976",
                            "    - net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate",
                            "      in qfq_reset",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22977",
                            "    - net: sock: fix hardened usercopy panic in sock_recv_errqueue",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22982",
                            "    - net: mscc: ocelot: Fix crash when adding interface under a lag",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-23019",
                            "    - net: marvell: prestera: fix NULL dereference on devlink_alloc() failure",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-22121",
                            "    - ext4: fix out-of-bound read in ext4_xattr_inode_dec_ref_all()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22992",
                            "    - libceph: return the handler error from mon_handle_auth_done()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22991",
                            "    - libceph: make free_choose_arg_map() resilient to partial allocation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22990",
                            "    - libceph: replace overzealous BUG_ON in osdmap_apply_incremental()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22984",
                            "    - libceph: prevent potential out-of-bounds reads in handle_auth_done()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22978",
                            "    - wifi: avoid kernel-infoleak from struct iw_point",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-23020",
                            "    - net: 3com: 3c59x: fix possible null dereference in vortex_probe1()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2024-49968",
                            "    - ext4: filesystems without casefold feature cannot be mounted with",
                            "      siphash",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2024-36927",
                            "    - ipv4: Fix uninit-value access in __ip_make_skb()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2024-36903",
                            "    - ipv6: Fix potential uninit-value access in __ip6_make_skb()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-38556",
                            "    - HID: core: Harden s32ton() against conversion to 0 bits",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2024-46830",
                            "    - KVM: x86: Acquire kvm->srcu when handling KVM_SET_VCPU_EVENTS",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-38129",
                            "    - page_pool: Fix use-after-free in page_pool_recycle_in_ring",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2022-49635",
                            "    - drm/i915/selftests: fix subtraction overflow bug",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-22111",
                            "    - net: Remove RTNL dance for SIOCBRADDIF and SIOCBRDELIF.",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71127",
                            "    - wifi: mac80211: Discard Beacon frames to non-broadcast address",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71081",
                            "    - ASoC: stm32: sai: fix OF node leak on probe",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71078",
                            "    - powerpc/64s/slb: Fix SLB multihit issue during SLB preload",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68803",
                            "    - NFSD: NFSv4 file creation neglects setting ACL",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71120",
                            "    - SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in",
                            "      gss_read_proxy_verf",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71113",
                            "    - crypto: af_alg - zero initialize memory allocated via sock_kmalloc",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71068",
                            "    - svcrdma: bound check rq_pages index in inline path",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68821",
                            "    - fuse: fix readahead reclaim deadlock",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68796",
                            "    - f2fs: fix to avoid updating zero-sized extent in extent cache",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71105",
                            "    - f2fs: use global inline_xattr_slab instead of per-sb slab cache",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68344",
                            "    - ALSA: wavefront: Fix integer overflow in sample size validation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71077",
                            "    - tpm: Cap the number of PCR banks",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68282",
                            "    - usb: gadget: udc: fix use-after-free in usb_gadget_state_work",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-22022",
                            "    - usb: xhci: Apply the link chain quirk on NEC isoc endpoints",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-40110",
                            "    - drm/vmwgfx: Fix a null-ptr access in the cursor snooper",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-38022",
                            "    - RDMA/core: Fix \"KASAN: slab-use-after-free Read in ib_register_device\"",
                            "      problem",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71083",
                            "    - drm/ttm: Avoid NULL pointer deref for evicted BOs",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71079",
                            "    - net: nfc: fix deadlock between nfc_unregister_device and",
                            "      rfkill_fop_write",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71093",
                            "    - e1000: fix OOB in e1000_tbi_should_accept()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71084",
                            "    - RDMA/cm: Fix leaking the multicast GID table reference",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71096",
                            "    - RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71136",
                            "    - media: adv7842: Avoid possible out-of-bounds array accesses in",
                            "      adv7842_cp_log_status()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71133",
                            "    - RDMA/irdma: avoid invalid read in irdma_net_event",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71086",
                            "    - net: rose: fix invalid array index in rose_kill_by_device()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71097",
                            "    - ipv4: Fix reference count leak when using error routes with nexthop",
                            "      objects",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71085",
                            "    - ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71137",
                            "    - octeontx2-pf: fix \"UBSAN: shift-out-of-bounds error\"",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71094",
                            "    - net: usb: asix: validate PHY address before use",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71132",
                            "    - smc91x: fix broken irq-context in PREEMPT_RT",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71154",
                            "    - net: usb: rtl8150: fix memory leak on usb_submit_urb() failure",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71091",
                            "    - team: fix check for port enabled in",
                            "      team_queue_override_port_prio_changed()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71098",
                            "    - ip6_gre: make ip6gre_header() robust",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71082",
                            "    - Bluetooth: btusb: revert use of devm_kzalloc in btusb",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71131",
                            "    - crypto: seqiv - Do not use req->iv after crypto_aead_encrypt",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71087",
                            "    - iavf: fix off-by-one issues in iavf_config_rss_reg()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71111",
                            "    - hwmon: (w83791d) Convert macros to functions to avoid TOCTOU",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68814",
                            "    - io_uring: fix filename leak in __io_openat_prep()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68788",
                            "    - fsnotify: do not generate ACCESS/MODIFY events on child for special",
                            "      files",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71125",
                            "    - tracing: Do not register unsupported perf events",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71104",
                            "    - KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV",
                            "      timer",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71116",
                            "    - libceph: make decode_pool() more resilient against corrupted osdmaps",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71121",
                            "    - parisc: Do not reprogram affinitiy on ASP chip",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71102",
                            "    - scs: fix a wrong parameter in __scs_magic",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68804",
                            "    - platform/chrome: cros_ec_ishtp: Fix UAF after unbinding driver",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68771",
                            "    - ocfs2: fix kernel BUG in ocfs2_find_victim_chain",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68808",
                            "    - media: vidtv: initialize local pointers upon transfer of memory",
                            "      ownership",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68769",
                            "    - f2fs: fix return value of f2fs_recover_fsync_data()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71069",
                            "    - f2fs: invalidate dentry cache on failed whiteout creation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68782",
                            "    - scsi: target: Reset t_task_cdb pointer in error case",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71075",
                            "    - scsi: aic94xx: fix use-after-free in device removal path",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68818",
                            "    - scsi: Revert \"scsi: qla2xxx: Perform lockless command completion in",
                            "      abort path\"",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68797",
                            "    - char: applicom: fix NULL pointer dereference in ac_ioctl",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68819",
                            "    - media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68820",
                            "    - ext4: xattr: fix null pointer deref in ext4_raw_inode()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71147",
                            "    - KEYS: trusted: Fix a memory leak in tpm2_load_cmd",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71108",
                            "    - usb: typec: ucsi: Handle incorrect num_connectors capability",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71114",
                            "    - via_wdt: fix critical boot hang due to unnamed resource allocation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68783",
                            "    - ALSA: usb-mixer: us16x08: validate meter packet indices",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68776",
                            "    - net/hsr: fix NULL pointer dereference in prp_get_untagged_frame()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68777",
                            "    - Input: ti_am335x_tsc - fix off-by-one error in wire_order validation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71112",
                            "    - net: hns3: add VLAN id validation before using",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71064",
                            "    - net: hns3: using the num_tqps in the vf driver to apply for resources",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68816",
                            "    - net/mlx5: fw_tracer, Validate format string parameters",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68795",
                            "    - ethtool: Avoid overflowing userspace buffer on stats query",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68815",
                            "    - net/sched: ets: Remove drr class from the active list if it changes to",
                            "      strict",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68799",
                            "    - caif: fix integer underflow in cffrml_receive()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68813",
                            "    - ipvs: fix ipv4 null-ptr-deref in route error path",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68785",
                            "    - net: openvswitch: fix middle attribute validation in push_nsh() action",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68800",
                            "    - mlxsw: spectrum_mr: Fix use-after-free when updating multicast route",
                            "      stats",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68801",
                            "    - mlxsw: spectrum_router: Fix neighbour use-after-free",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71066",
                            "    - net/sched: ets: Always remove class from active list before deleting in",
                            "      ets_qdisc_change",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68787",
                            "    - netrom: Fix memory leak in nr_sendmsg()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68767",
                            "    - hfsplus: Verify inode mode when loading from disk",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68774",
                            "    - hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71118",
                            "    - ACPICA: Avoid walking the Namespace if start_node is NULL",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68780",
                            "    - sched/deadline: only set free_cpus for online runqueues",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68346",
                            "    - ALSA: dice: fix buffer overflow in detect_stream_formats()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68764",
                            "    - NFS: Automounted filesystems should inherit ro,noexec,nodev,sync flags",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68349",
                            "    - NFSv4/pNFS: Clear NFS_INO_LAYOUTCOMMIT in",
                            "      pnfs_mark_layout_stateid_invalid",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68325",
                            "    - net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68354",
                            "    - regulator: core: Protect regulator_supply_alias_list with",
                            "      regulator_list_mutex",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68758",
                            "    - backlight: led-bl: Add devlink to supplier LEDs",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68765",
                            "    - mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68740",
                            "    - ima: Handle error code returned by ima_filter_rule_match()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68362",
                            "    - wifi: rtl818x: rtl8187: Fix potential buffer underflow in",
                            "      rtl8187_rx_cb()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68759",
                            "    - wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68364",
                            "    - ocfs2: relax BUG() to ocfs2_error() in __ocfs2_move_extent()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68366",
                            "    - nbd: defer config unlock in nbd_genl_connect",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68367",
                            "    - macintosh/mac_hid: fix race condition in mac_hid_toggle_emumouse",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68372",
                            "    - nbd: defer config put in recv_work",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68746",
                            "    - spi: tegra210-quad: Fix timeout handling",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68724",
                            "    - crypto: asymmetric_keys - prevent overflow in asymmetric_key_generate_id",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68727",
                            "    - ntfs3: Fix uninit buffer allocated by __getname()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68728",
                            "    - ntfs3: fix uninit memory after failed mi_read in mi_format_new",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68757",
                            "    - drm/vgem-fence: Fix potential deadlock on release",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68732",
                            "    - gpu: host1x: Fix race in syncpt alloc/free",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68733",
                            "    - smack: fix bug: unprivileged task can create labels",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68254",
                            "    - staging: rtl8723bs: fix out-of-bounds read in OnBeacon ESR IE parsing",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68255",
                            "    - staging: rtl8723bs: fix stack buffer overflow in OnAssocReq IE parsing",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68257",
                            "    - comedi: check device's attached status in compat ioctls",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68258",
                            "    - comedi: multiq3: sanitize config options in multiq3_attach()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68332",
                            "    - comedi: c6xdigio: Fix invalid PNP driver unregistration",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68266",
                            "    - bfs: Reconstruct file type when loading from disk",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68335",
                            "    - comedi: pcl818: fix null-ptr-deref in pcl818_ai_cancel()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68261",
                            "    - ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68336",
                            "    - locking/spinlock/debug: Fix data-race in do_raw_write_lock",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68264",
                            "    - ext4: refresh inline data size before write operations",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68337",
                            "    - jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system",
                            "      corrupted",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662)",
                            "    - x86/bugs: Fix reporting of LFENCE retpoline",
                            "    - btrfs: scrub: replace max_t()/min_t() with clamp() in",
                            "      scrub_throttle_dev_io()",
                            "    - btrfs: always drop log root tree reference in btrfs_replay_log()",
                            "    - btrfs: use smp_mb__after_atomic() when forcing COW in",
                            "      create_pending_snapshot()",
                            "    - net: usb: asix_devices: Check return value of usbnet_get_endpoints",
                            "    - fbdev: atyfb: Check if pll_ops->init_pll failed",
                            "    - fbdev: pvr2fb: Fix leftover reference to ONCHIP_NR_DMA_CHANNELS",
                            "    - fbdev: valkyriefb: Fix reference count leak in valkyriefb_init",
                            "    - mptcp: restore window probe",
                            "    - ASoC: qdsp6: q6asm: do not sleep while atomic",
                            "    - wifi: ath10k: Fix memory leak on unsupported WMI command",
                            "    - drm/msm/a6xx: Fix GMU firmware parser",
                            "    - ALSA: usb-audio: fix control pipe direction",
                            "    - bpf: Do not audit capability check in do_jit()",
                            "    - riscv, libbpf: Add RISC-V (RV64) support to bpf_tracing.h",
                            "    - libbpf: Normalize PT_REGS_xxx() macro definitions",
                            "    - libbpf: Fix powerpc's stack register definition in bpf_tracing.h",
                            "    - drm/etnaviv: fix flush sequence logic",
                            "    - net: hns3: return error code when function fails",
                            "    - drm/amd/pm: fix smu table id bound check issue in smu_cmn_update_table()",
                            "    - drm/amd/pm/powerplay/smumgr: Fix PCIeBootLinkLevel value on Fiji",
                            "    - drm/amd/pm/powerplay/smumgr: Fix PCIeBootLinkLevel value on Iceland",
                            "    - block: fix op_is_zone_mgmt() to handle REQ_OP_ZONE_RESET_ALL",
                            "    - serial: 8250_dw: Use devm_add_action_or_reset()",
                            "    - serial: 8250_dw: handle reset control deassert error",
                            "    - dt-bindings: usb: dwc3-imx8mp: dma-range is required only for imx8mp",
                            "    - ravb: Exclude gPTP feature support for RZ/G2L",
                            "    - net: ravb: Enforce descriptor type ordering",
                            "    - can: gs_usb: increase max interface to U8_MAX",
                            "    - net: phy: dp83867: Disable EEE support as not implemented",
                            "    - x86/resctrl: Fix miscount of bandwidth event when reactivating",
                            "      previously unavailable RMID",
                            "    - xhci: dbc: Provide sysfs option to configure dbc descriptors",
                            "    - xhci: dbc: poll at different rate depending on data transfer activity",
                            "    - xhci: dbc: Allow users to modify DbC poll interval via sysfs",
                            "    - xhci: dbc: Improve performance by removing delay in transfer event",
                            "      polling.",
                            "    - xhci: dbc: Avoid event polling busyloop if pending rx transfers are",
                            "      inactive.",
                            "    - xhci: dbc: fix bogus 1024 byte prefix if ttyDBC read races with stall",
                            "      event",
                            "    - x86/boot: Compile boot code with -std=gnu11 too",
                            "    - arch: back to -std=gnu89 in < v5.18",
                            "    - Revert \"docs/process/howto: Replace C89 with C11\"",
                            "    - drm/sched: Fix race in drm_sched_entity_select_rq()",
                            "    - block: make REQ_OP_ZONE_OPEN a write operation",
                            "    - soc: aspeed: socinfo: Add AST27xx silicon IDs",
                            "    - soc: qcom: smem: Fix endian-unaware access of num_entries",
                            "    - spi: loopback-test: Don't use %pK through printk",
                            "    - soc: ti: pruss: don't use %pK through printk",
                            "    - bpf: Don't use %pK through printk",
                            "    - pinctrl: single: fix bias pull up/down handling in pin_config_set",
                            "    - mmc: host: renesas_sdhi: Fix the actual clock",
                            "    - memstick: Add timeout to prevent indefinite waiting",
                            "    - ACPI: video: force native for Lenovo 82K8",
                            "    - selftests/bpf: Fix bpf_prog_detach2 usage in test_lirc_mode2",
                            "    - arc: Fix __fls() const-foldability via __builtin_clzl()",
                            "    - irqchip/gic-v2m: Handle Multiple MSI base IRQ Alignment",
                            "    - ACPI: PRM: Skip handlers with NULL handler_address or NULL VA",
                            "    - ACPI: scan: Add Intel CVS ACPI HIDs to acpi_ignore_dep_ids[]",
                            "    - hwmon: (sbtsi_temp) AMD CPU extended temperature range support",
                            "    - power: supply: sbs-charger: Support multiple devices",
                            "    - mmc: sdhci-msm: Enable tuning for SDR50 mode for SD card",
                            "    - ACPICA: dispatcher: Use acpi_ds_clear_operands() in",
                            "      acpi_ds_call_control_method()",
                            "    - tee: allow a driver to allocate a tee_device without a pool",
                            "    - video: backlight: lp855x_bl: Set correct EPROM start for LP8556",
                            "    - tools/cpupower: fix error return value in cpupower_write_sysfs()",
                            "    - cpuidle: Fail cpuidle device registration if there is one already",
                            "    - clocksource/drivers/vf-pit: Replace raw_readl/writel to readl/writel",
                            "    - uprobe: Do not emulate/sstep original instruction when ip is changed",
                            "    - hwmon: (dell-smm) Add support for Dell OptiPlex 7040",
                            "    - tools/cpupower: Fix incorrect size in cpuidle_state_disable()",
                            "    - tools/power x86_energy_perf_policy: Fix incorrect fopen mode usage",
                            "    - tools/power x86_energy_perf_policy: Enhance HWP enable",
                            "    - tools/power x86_energy_perf_policy: Prefer driver HWP limits",
                            "    - mfd: stmpe: Remove IRQ domain upon removal",
                            "    - mfd: stmpe-i2c: Add missing MODULE_LICENSE",
                            "    - mfd: madera: Work around false-positive -Wininitialized warning",
                            "    - mfd: da9063: Split chip variant reading in two bus transactions",
                            "    - drm/amd/pm: Use cached metrics data on aldebaran",
                            "    - drm/amd/pm: Use cached metrics data on arcturus",
                            "    - drm/amdgpu/jpeg: Hold pg_lock before jpeg poweroff",
                            "    - drm/nouveau: replace snprintf() with scnprintf() in nvkm_snprintbf()",
                            "    - PCI: Disable MSI on RDC PCI to PCIe bridges",
                            "    - selftests/net: Replace non-standard __WORDSIZE with sizeof(long) * 8",
                            "    - selftests/net: Ensure assert() triggers in psock_tpacket.c",
                            "    - drm/amdkfd: return -ENOTTY for unsupported IOCTLs",
                            "    - media: pci: ivtv: Don't create fake v4l2_fh",
                            "    - drm/tidss: Use the crtc_* timings when programming the HW",
                            "    - drm/tidss: Set crtc modesetting parameters with adjusted mode",
                            "    - x86/vsyscall: Do not require X86_PF_INSTR to emulate vsyscall",
                            "    - net: stmmac: Check stmmac_hw_setup() in stmmac_resume()",
                            "    - thunderbolt: Use is_pciehp instead of is_hotplug_bridge",
                            "    - powerpc/eeh: Use result of error_detected() in uevent",
                            "    - bridge: Redirect to backup port when port is administratively down",
                            "    - drm/bridge: display-connector: don't set OP_DETECT for DisplayPorts",
                            "    - iio: adc: spear_adc: mask SPEAR_ADC_STATUS channel and avg sample before",
                            "      setting register",
                            "    - usb: gadget: f_ncm: Fix MAC assignment NCM ethernet",
                            "    - char: misc: Does not request module for miscdevice with dynamic minor",
                            "    - net: When removing nexthops, don't call synchronize_net if it is not",
                            "      necessary",
                            "    - net: Call trace_sock_exceed_buf_limit() for memcg failure with",
                            "      SK_MEM_RECV.",
                            "    - PCI/P2PDMA: Fix incorrect pointer usage in devm_kfree() call",
                            "    - ALSA: usb-audio: Add validation of UAC2/UAC3 effect units",
                            "    - rds: Fix endianness annotation for RDS_MPATH_HASH",
                            "    - scsi: mpi3mr: Fix controller init failure on fault during queue creation",
                            "    - scsi: pm80xx: Fix race condition caused by static variables",
                            "    - extcon: adc-jack: Fix wakeup source leaks on device unbind",
                            "    - drm/amdkfd: Tie UNMAP_LATENCY to queue_preemption",
                            "    - media: fix uninitialized symbol warnings",
                            "    - mips: lantiq: danube: add missing properties to cpu node",
                            "    - mips: lantiq: danube: add missing device_type in pci node",
                            "    - mips: lantiq: xway: sysctrl: rename stp clock",
                            "    - scsi: pm8001: Use int instead of u32 to store error codes",
                            "    - ptp: Limit time setting of PTP clocks",
                            "    - dmaengine: sh: setup_xref error handling",
                            "    - dmaengine: mv_xor: match alloc_wc and free_wc",
                            "    - dmaengine: dw-edma: Set status for callback_result",
                            "    - drm/msm/dsi/phy: Toggle back buffer resync after preparing PLL",
                            "    - drm/msm/dsi/phy_7nm: Fix missing initial VCO rate",
                            "    - ipv6: Add sanity checks on ipv6_devconf.rpl_seg_enabled",
                            "    - net: nfc: nci: Increase NCI_DATA_TIMEOUT to 3000 ms",
                            "    - net: call cond_resched() less often in __release_sock()",
                            "    - iommu/amd: Skip enabling command/event buffers for kdump",
                            "    - usb: gadget: f_hid: Fix zero length packet transfer",
                            "    - drm/msm: make sure to not queue up recovery more than once",
                            "    - net: phy: marvell: Fix 88e1510 downshift counter errata",
                            "    - phy: cadence: cdns-dphy: Enable lower resolutions in dphy",
                            "    - phy: rockchip: phy-rockchip-inno-csidphy: allow writes to grf register 0",
                            "    - net: sh_eth: Disable WoL if system can not suspend",
                            "    - media: redrat3: use int type to store negative error codes",
                            "    - selftests: traceroute: Use require_command()",
                            "    - netfilter: nf_reject: don't reply to icmp error messages",
                            "    - x86/kvm: Prefer native qspinlock for dedicated vCPUs irrespective of",
                            "      PV_UNHALT",
                            "    - selftests: Disable dad for ipv6 in fcnal-test.sh",
                            "    - eth: 8139too: Make 8139TOO_PIO depend on !NO_IOPORT_MAP",
                            "    - [Config] Disable CONFIG_8139TOO_PIO for armhf",
                            "    - selftests: Replace sleep with slowwait",
                            "    - net/cls_cgroup: Fix task_get_classid() during qdisc run",
                            "    - drm/amdgpu: Use memdup_array_user in amdgpu_cs_wait_fences_ioctl",
                            "    - selftests/Makefile: include $(INSTALL_DEP_TARGETS) in clean target to",
                            "      clean net/lib dependency",
                            "    - scsi: lpfc: Check return status of lpfc_reset_flush_io_context during",
                            "      TGT_RESET",
                            "    - scsi: lpfc: Remove ndlp kref decrement clause for F_Port_Ctrl in",
                            "      lpfc_cleanup",
                            "    - scsi: lpfc: Define size of debugfs entry for xri rebalancing",
                            "    - allow finish_no_open(file, ERR_PTR(-E...))",
                            "    - usb: mon: Increase BUFF_MAX to 64 MiB to support multi-MB URBs",
                            "    - usb: xhci: plat: Facilitate using autosuspend for xhci plat devices",
                            "    - ipv6: np->rxpmtu race annotation",
                            "    - net: ethernet: microchip: sparx5: make it selectable for ARCH_LAN969X",
                            "    - iommu/vt-d: Replace snprintf with scnprintf in dmar_latency_snapshot()",
                            "    - wifi: ath10k: Fix connection after GTK rekeying",
                            "    - net: intel: fm10k: Fix parameter idx set but not used",
                            "    - r8169: set EEE speed down ratio to 1",
                            "    - sparc/module: Add R_SPARC_UA64 relocation handling",
                            "    - remoteproc: qcom: q6v5: Avoid handling handover twice",
                            "    - NFSv4: handle ERR_GRACE on delegation recalls",
                            "    - NFSv4.1: fix mount hang after CREATE_SESSION failure",
                            "    - scsi: libfc: Fix potential buffer overflow in fc_ct_ms_fill()",
                            "    - net: macb: avoid dealing with endianness in macb_set_hwaddr()",
                            "    - ALSA: usb-audio: add mono main switch to Presonus S1824c",
                            "    - exfat: limit log print for IO error",
                            "    - page_pool: Clamp pool size to max 16K pages",
                            "    - ACPICA: Update dsmethod.c to get rid of unused variable warning",
                            "    - RDMA/irdma: Fix SD index calculation",
                            "    - RDMA/irdma: Remove unused struct irdma_cq fields",
                            "    - RDMA/irdma: Set irdma_cq cq_num field during CQ create",
                            "    - RDMA/hns: Fix wrong WQE data when QP wraps around",
                            "    - btrfs: mark dirty extent range for out of bound prealloc extents",
                            "    - fs/hpfs: Fix error code for new_inode() failure in",
                            "      mkdir/create/mknod/symlink",
                            "    - um: Fix help message for ssl-non-raw",
                            "    - rtc: pcf2127: clear minute/second interrupt",
                            "    - ARM: at91: pm: save and restore ACR during PLL disable/enable",
                            "    - clk: at91: clk-master: Add check for divide by 3",
                            "    - clk: ti: am33xx: keep WKUP_DEBUGSS_CLKCTRL enabled",
                            "    - 9p: fix /sys/fs/9p/caches overwriting itself",
                            "    - cpufreq: tegra186: Initialize all cores to max frequencies",
                            "    - 9p: sysfs_init: don't hardcode error to ENOMEM",
                            "    - ACPI: property: Return present device nodes only on fwnode interface",
                            "    - ASoC: meson: aiu-encoder-i2s: fix bit clock polarity",
                            "    - ceph: add checking of wait_for_completion_killable() return value",
                            "    - ALSA: hda/realtek: Audio disappears on HP 15-fc000 after warm boot again",
                            "    - Revert \"wifi: ath10k: avoid unnecessary wait for service ready message\"",
                            "    - riscv: ptdump: use seq_puts() in pt_dump_seq_puts() macro",
                            "    - net: dsa: tag_brcm: legacy: fix untagged rx on unbridged ports for",
                            "      bcm63xx",
                            "    - selftests/net: fix out-of-order delivery of FIN in gro:tcp test",
                            "    - selftests/net: fix GRO coalesce test and add ext header coalesce tests",
                            "    - selftests/net: use destination options instead of hop-by-hop",
                            "    - netdevsim: add Makefile for selftests",
                            "    - selftests: netdevsim: Fix ethtool-coalesce.sh fail by installing",
                            "      ethtool-common.sh",
                            "    - net: vlan: sync VLAN features with lower device",
                            "    - net: dsa: b53: fix resetting speed and pause on forced link",
                            "    - net: dsa: b53: fix enabling ip multicast",
                            "    - net: dsa: b53: stop reading ARL entries if search is done",
                            "    - sctp: Hold RCU read lock while iterating over address list",
                            "    - sctp: Hold sock lock while iterating over address list",
                            "    - bnxt_en: PTP: Refactor PTP initialization functions",
                            "    - bnxt_en: Fix a possible memory leak in bnxt_ptp_init",
                            "    - tracing: Fix memory leaks in create_field_var()",
                            "    - rtc: rx8025: fix incorrect register reference",
                            "    - lib/crypto: curve25519-hacl64: Fix older clang KASAN workaround for GCC",
                            "    - extcon: adc-jack: Cleanup wakeup source only if it was enabled",
                            "    - selftests: netdevsim: set test timeout to 10 minutes",
                            "    - compiler_types: Move unused static inline functions warning to W=2",
                            "    - RISC-V: clear hot-unplugged cores from all task mm_cpumasks to avoid",
                            "      rfence errors",
                            "    - NFS4: Fix state renewals missing after boot",
                            "    - HID: quirks: avoid Cooler Master MM712 dongle wakeup bug",
                            "    - NFS: check if suid/sgid was cleared after a write as needed",
                            "    - ASoC: max98090/91: fixed max98091 ALSA widget powering up/down",
                            "    - net: fec: correct rx_bytes statistic for the case SHIFT16 is set",
                            "    - Bluetooth: 6lowpan: fix BDADDR_LE vs ADDR_LE_DEV address type confusion",
                            "    - Bluetooth: 6lowpan: Don't hold spin lock over sleeping functions",
                            "    - net/smc: fix mismatch between CLC header and proposal",
                            "    - net: mdio: fix resource leak in mdiobus_register_device()",
                            "    - wifi: mac80211: skip rate verification for not captured PSDUs",
                            "    - net: sched: act: move global static variable net_id to tc_action_ops",
                            "    - net: sched: act_connmark: get rid of tcf_connmark_walker and",
                            "      tcf_connmark_search",
                            "    - net/sched: act_connmark: transition to percpu stats and rcu",
                            "    - net_sched: act_connmark: use RCU in tcf_connmark_dump()",
                            "    - net/mlx5e: Fix maxrate wraparound in threshold between units",
                            "    - net/mlx5e: Fix wraparound in rate limiting for values above 255 Gbps",
                            "    - net_sched: limit try_bulk_dequeue_skb() batches",
                            "    - hsr: Fix supervision frame sending on HSRv0",
                            "    - Bluetooth: L2CAP: export l2cap_chan_hold for modules",
                            "    - acpi,srat: Fix incorrect device handle check for Generic Initiator",
                            "    - regulator: fixed: fix GPIO descriptor leak on register failure",
                            "    - ASoC: cs4271: Fix regulator leak on probe failure",
                            "    - NFSv4: Fix an incorrect parameter when calling nfs4_call_sync()",
                            "    - mptcp: pm: in-kernel: C-flag: handle late ADD_ADDR",
                            "    - lib/crypto: arm/curve25519: Disable on CPU_BIG_ENDIAN",
                            "    - mtd: onenand: Pass correct pointer to IRQ handler",
                            "    - HID: hid-ntrig: Prevent memory leak in ntrig_report_version()",
                            "    - gcov: add support for GCC 15",
                            "    - strparser: Fix signed/unsigned mismatch bug",
                            "    - ALSA: usb-audio: Fix missing unlock at error path of maxpacksize check",
                            "    - spi: Try to get ACPI GPIO IRQ earlier",
                            "    - EDAC/altera: Handle OCRAM ECC enable after warm reset",
                            "    - EDAC/altera: Use INTTEST register for Ethernet and USB SBE injection",
                            "    - net/sched: act_connmark: handle errno on tcf_idr_check_alloc",
                            "    - HID: quirks: work around VID/PID conflict for 0x4c4a/0x4155",
                            "    - exfat: check return value of sb_min_blocksize in exfat_read_boot_sector",
                            "    - MIPS: Malta: Fix !EVA SOC-it PCI MMIO",
                            "    - drm/tegra: dc: Fix reference leak in tegra_dc_couple()",
                            "    - mlxsw: spectrum: Fix memory leak in mlxsw_sp_flower_stats()",
                            "    - net: dsa: hellcreek: fix missing error handling in LED registration",
                            "    - platform/x86/intel/speed_select_if: Convert PCIBIOS_* return codes to",
                            "      errnos",
                            "    - kernel.h: Move ARRAY_SIZE() to a separate header",
                            "    - scsi: core: Fix a regression triggered by scsi_host_busy()",
                            "    - selftests: net: use BASH for bareudp testing",
                            "    - net: tls: Cancel RX async resync request on rcd_delta overflow",
                            "    - kconfig/mconf: Initialize the default locale at startup",
                            "    - kconfig/nconf: Initialize the default locale at startup",
                            "    - mm/mm_init: fix hash table order logging in alloc_large_system_hash()",
                            "    - ALSA: usb-audio: fix uac2 clock source at terminal parser",
                            "    - tracing/tools: Fix incorrcet short option in usage text for --threads",
                            "    - uio_hv_generic: Set event for all channels on the device",
                            "    - Makefile.compiler: replace cc-ifversion with compiler-specific macros",
                            "    - btrfs: add helper to truncate inode items when logging inode",
                            "    - mmc: sdhci-of-dwcmshc: Change DLL_STRBIN_TAPNUM_DEFAULT to 0x4",
                            "    - pmdomain: imx: Fix reference count leak in imx_gpc_remove",
                            "    - pmdomain: samsung: plug potential memleak during probe",
                            "    - selftests: mptcp: connect: fix fallback note due to OoO",
                            "    - mptcp: Disallow MPTCP subflows from sockmap",
                            "    - usb: deprecate the third argument of usb_maxpacket()",
                            "    - Input: remove third argument of usb_maxpacket()",
                            "    - ata: libata-scsi: Fix system suspend for a security locked drive",
                            "    - dt-bindings: pinctrl: toshiba,visconti: Fix number of items in groups",
                            "    - mptcp: fix ack generation for fallback msk",
                            "    - mptcp: fix premature close in case of fallback",
                            "    - mptcp: do not fallback when OoO is present",
                            "    - Revert \"block: Move checking GENHD_FL_NO_PART to bdev_add_partition()\"",
                            "    - Revert \"block: don't add or resize partition on the disk with",
                            "      GENHD_FL_NO_PART\"",
                            "    - Bluetooth: SMP: Fix not generating mackey and ltk when repairing",
                            "    - net: aquantia: Add missing descriptor cache invalidation on ATL2",
                            "    - net/mlx5e: Fix validation logic in rate limiting",
                            "    - net: dsa: sja1105: Convert to mdiobus_c45_read",
                            "    - net: dsa: sja1105: simplify static configuration reload",
                            "    - net: dsa: sja1105: fix SGMII linking at 10M or 100M but not passing",
                            "      traffic",
                            "    - mailbox: mailbox-test: Fix debugfs_create_dir error checking",
                            "    - spi: bcm63xx: fix premature CS deassertion on RX-only transactions",
                            "    - Revert \"perf/x86: Always store regs->ip in perf_callchain_kernel()\"",
                            "    - iio: imu: st_lsm6dsx: fix array size for st_lsm6dsx_settings fields",
                            "    - iio:common:ssp_sensors: Fix an error handling path ssp_probe()",
                            "    - MIPS: mm: Prevent a TLB shutdown on initial uniquification",
                            "    - can: sja1000: fix max irq loop handling",
                            "    - can: sun4i_can: sun4i_can_interrupt(): fix max irq loop handling",
                            "    - dm-verity: fix unreliable memory allocation",
                            "    - drivers/usb/dwc3: fix PCI parent check",
                            "    - thunderbolt: Add support for Intel Wildcat Lake",
                            "    - slimbus: ngd: Fix reference count leak in qcom_slim_ngd_notify_slaves",
                            "    - serial: amba-pl011: prefer dma_mapping_error() over explicit address",
                            "      checking",
                            "    - usb: cdns3: Fix double resource release in cdns3_pci_probe",
                            "    - USB: storage: Remove subclass and protocol overrides from Novatek quirk",
                            "    - xhci: dbgtty: Fix data corruption when transmitting data form DbC to",
                            "      host",
                            "    - USB: serial: ftdi_sio: add support for u-blox EVK-M101",
                            "    - USB: serial: option: add support for Rolling RW101R-GL",
                            "    - drm: sti: fix device leaks at component probe",
                            "    - staging: rtl8712: Remove driver using deprecated API wext",
                            "    - [Config] Remove config option for CONFIG_R8712U",
                            "    - selftests: mptcp: join: rm: set backup flag",
                            "    - mptcp: avoid unneeded subflow-level drops",
                            "    - usb: renesas_usbhs: Convert to platform remove callback returning void",
                            "    - usb: typec: ucsi: psy: Set max current to zero when disconnected",
                            "    - selftests/bpf: Don't rely on preserving volatile in PT_REGS macros in",
                            "      loop3",
                            "    - libbpf: Fix riscv register names",
                            "    - libbpf, riscv: Use a0 for RC register",
                            "    - libbpf: Fix invalid return address register in s390",
                            "    - Linux 5.15.197",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2024-47666",
                            "    - scsi: pm80xx: Set phy->enable_completion only when we",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68327",
                            "    - usb: renesas_usbhs: Fix synchronous external abort on unbind",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68295",
                            "    - smb: client: fix memory leak in cifs_construct_tcon()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68227",
                            "    - mptcp: Fix proto fallback detection with BPF",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68284",
                            "    - libceph: prevent potential out-of-bounds writes in",
                            "      handle_auth_session_key()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68285",
                            "    - libceph: fix potential use-after-free in have_mon_and_osd_map()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68286",
                            "    - drm/amd/display: Check NULL before accessing",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68287",
                            "    - usb: dwc3: Fix race condition between concurrent dwc3_remove_requests()",
                            "      call paths",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68331",
                            "    - usb: uas: fix urb unmapping issue when the uas device is remove during",
                            "      ongoing data transfer",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40345",
                            "    - usb: storage: sddr55: Reject out-of-bound new_pba",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68288",
                            "    - usb: storage: Fix memory leak in USB bulk transport",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68289",
                            "    - usb: gadget: f_eem: Fix memory leak in eem_unwrap",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68290",
                            "    - most: usb: fix double free on late probe failure",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68328",
                            "    - firmware: stratix10-svc: fix bug in saving controller data",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68339",
                            "    - atm/fore200e: Fix possible data race in fore200e_open()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68330",
                            "    - iio: accel: bmc150: Fix irq assumption regression",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68301",
                            "    - net: atlantic: fix fragment overflow handling in RX path",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68302",
                            "    - net: sxgbe: fix potential NULL dereference in sxgbe_rx()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68303",
                            "    - platform/x86: intel: punit_ipc: fix memory corruption",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68308",
                            "    - can: kvaser_usb: leaf: Fix potential infinite loop in command parsers",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40257",
                            "    - mptcp: fix a race in mptcp_pm_del_add_timer()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68217",
                            "    - Input: pegasus-notetaker - fix potential out-of-bounds access",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68204",
                            "    - pmdomain: arm: scmi: Fix genpd leak on provider registration failure",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68245",
                            "    - net: netpoll: fix incorrect refcount handling causing incorrect cleanup",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2024-37354",
                            "    - btrfs: fix crash on racing fsync and size-extending write into prealloc",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68220",
                            "    - net: ethernet: ti: netcp: Standardize knav_dma_open_channel to return",
                            "      NULL on error",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40272",
                            "    - mm/secretmem: fix use-after-free race in fault handler",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40248",
                            "    - vsock: Ignore signal/timeout on connect() if already established",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40252",
                            "    - net: qlogic/qede: fix potential out-of-bounds read in qede_tpa_cont()",
                            "      and qede_tpa_end()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40253",
                            "    - s390/ctcm: Fix double-kfree",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40254",
                            "    - net: openvswitch: remove never-working support for setting nsh fields",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40258",
                            "    - mptcp: fix race condition in mptcp_schedule_work()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68229",
                            "    - scsi: target: tcm_loop: Fix segfault in tcm_loop_tpg_address_show()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40259",
                            "    - scsi: sg: Do not sleep in atomic context",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40261",
                            "    - nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40262",
                            "    - Input: imx_sc_key - fix memory corruption on unload",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40263",
                            "    - Input: cros_ec_keyb - fix an invalid memory access",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40264",
                            "    - be2net: pass wrb_params in case of OS2BMC",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68238",
                            "    - mtd: rawnand: cadence: fix DMA device NULL pointer dereference",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68734",
                            "    - isdn: mISDN: hfcsusb: fix memory leak in hfcsusb_probe()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40269",
                            "    - ALSA: usb-audio: Fix potential overflow of PCM transfer buffer",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40271",
                            "    - fs/proc: fix uaf in proc_readdir_de()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68241",
                            "    - ipv4: route: Prevent rt_bind_exception() from rebinding stale fnhe",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40273",
                            "    - NFSD: free copynotify stateid in nfs4_free_ol_stateid()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40040",
                            "    - mm/ksm: fix flag-dropping behavior in ksm_madvise",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68200",
                            "    - bpf: Add bpf_prog_run_data_pointers()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40275",
                            "    - ALSA: usb-audio: Fix NULL pointer dereference in",
                            "      snd_usb_mixer_controls_badd",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40277",
                            "    - drm/vmwgfx: Validate command header size against SVGA_CMD_MAX_DATASIZE",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40278",
                            "    - net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-",
                            "      infoleak",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40279",
                            "    - net: sched: act_connmark: initialize struct tc_ife to fix kernel leak",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40280",
                            "    - tipc: Fix use-after-free in tipc_mon_reinit_self().",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40281",
                            "    - sctp: prevent possible shift-out-of-bounds in sctp_transport_update_rto",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40282",
                            "    - Bluetooth: 6lowpan: reset link-local header on ipv6 recv path",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40283",
                            "    - Bluetooth: btusb: reorder cleanup in btusb_disconnect to avoid UAF",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68244",
                            "    - drm/i915: Avoid lock inversion when pinning to GGTT on CHV/BXT+VTD",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68192",
                            "    - net: usb: qmi_wwan: initialize MAC header offset in qmimux_rx_fixup",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40331",
                            "    - sctp: Prevent TOCTOU out-of-bounds write",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40304",
                            "    - fbdev: Add bounds checking in bit_putcs to fix vmalloc-out-of-bounds",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40306",
                            "    - orangefs: fix xattr related buffer overflow...",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40308",
                            "    - Bluetooth: bcsp: receive data only if registered",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40309",
                            "    - Bluetooth: SCO: Fix UAF on sco_conn_free",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40361",
                            "    - fs: ext4: change GFP_KERNEL to GFP_NOFS to avoid deadlock",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68185",
                            "    - nfs4_setup_readdir(): insufficient locking for ->d_parent->d_inode",
                            "      dereferencing",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68176",
                            "    - PCI: cadence: Check for the existence of cdns_pcie::ops before using it",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68168",
                            "    - jfs: fix uninitialized waitqueue in transaction manager",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40312",
                            "    - jfs: Verify inode mode when loading from disk",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68321",
                            "    - page_pool: always add GFP_NOWARN for ATOMIC allocations",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68191",
                            "    - udp_tunnel: use netdev_warn() instead of netdev_WARN()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40313",
                            "    - ntfs3: pretend $Extend records as regular files",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40314",
                            "    - usb: cdns3: gadget: Use-after-free during failed initialization and exit",
                            "      of cdnsp gadget",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68194",
                            "    - media: imon: make send_packet() more robust",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40363",
                            "    - net: ipv6: fix field-spanning memcpy warning in AH output",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40342",
                            "    - nvme-fc: use lock accessing port_state and rport state",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40343",
                            "    - nvmet-fc: avoid scheduling association deletion twice",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68177",
                            "    - cpufreq/longhaul: handle NULL policy in longhaul_exit",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40360",
                            "    - drm/sysfb: Do not dereference NULL pointer in plane reset",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40315",
                            "    - usb: gadget: f_fs: Fix epfile null pointer access after ep enable.",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40317",
                            "    - regmap: slimbus: fix bus_context pointer in regmap init calls",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68312",
                            "    - usbnet: Prevents free active kevent",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40319",
                            "    - bpf: Sync pending IRQ work before freeing ring buffer",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40321",
                            "    - wifi: brcmfmac: fix crash while sending Action Frames in standalone AP",
                            "      Mode",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40322",
                            "    - fbdev: bitblit: bound-check glyph index in bit_putcs*",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40211",
                            "    - ACPI: video: Fix use-after-free in acpi_video_switch_brightness()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40324",
                            "    - NFSD: Fix crash in nfsd4_read_release()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40083",
                            "    - net/sched: sch_qfq: Fix null-deref in agg_dequeue",
                            "",
                            "  * CVE-2024-41014",
                            "    - xfs: add bounds checking to xlog_recover_process_data",
                            "",
                            "  * CVE-2022-49267",
                            "    - mmc: core: use sysfs_emit() instead of sprintf()",
                            "",
                            "  * CVE-2025-21780",
                            "    - drm/amdgpu: avoid buffer overflow attach in smu_sys_set_pp_table()",
                            ""
                        ],
                        "package": "linux",
                        "version": "5.15.0-172.182",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2141059,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662
                        ],
                        "author": "Edoardo Canepa <edoardo.canepa@canonical.com>",
                        "date": "Sat, 07 Feb 2026 09:17:42 +0100"
                    }
                ],
                "notes": "linux-headers-5.15.0-173 version '5.15.0-173.183' (source package linux version '5.15.0-173.183') was added. linux-headers-5.15.0-173 version '5.15.0-173.183' has the same source package name, linux, as removed package linux-headers-5.15.0-171. As such we can use the source package version of the removed package, '5.15.0-171.181', 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.15.0-173-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.15.0-171.181",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.15.0-173.183",
                    "version": "5.15.0-173.183"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-71182",
                        "url": "https://ubuntu.com/security/CVE-2025-71182",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: j1939: make j1939_session_activate() fail if device is no longer registered  syzbot is still reporting    unregister_netdevice: waiting for vcan0 to become free. Usage count = 2  even after commit 93a27b5891b8 (\"can: j1939: add missing calls in NETDEV_UNREGISTER notification handler\") was added. A debug printk() patch found that j1939_session_activate() can succeed even after j1939_cancel_active_session() from j1939_netdev_notify(NETDEV_UNREGISTER) has completed.  Since j1939_cancel_active_session() is processed with the session list lock held, checking ndev->reg_state in j1939_session_activate() with the session list lock held can reliably close the race window.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2022-49465",
                        "url": "https://ubuntu.com/security/CVE-2022-49465",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  blk-throttle: Set BIO_THROTTLED when bio has been throttled  1.In current process, all bio will set the BIO_THROTTLED flag after __blk_throtl_bio().  2.If bio needs to be throttled, it will start the timer and stop submit bio directly. Bio will submit in blk_throtl_dispatch_work_fn() when the timer expires.But in the current process, if bio is throttled. The BIO_THROTTLED will be set to bio after timer start. If the bio has been completed, it may cause use-after-free blow.  BUG: KASAN: use-after-free in blk_throtl_bio+0x12f0/0x2c70 Read of size 2 at addr ffff88801b8902d4 by task fio/26380   dump_stack+0x9b/0xce  print_address_description.constprop.6+0x3e/0x60  kasan_report.cold.9+0x22/0x3a  blk_throtl_bio+0x12f0/0x2c70  submit_bio_checks+0x701/0x1550  submit_bio_noacct+0x83/0xc80  submit_bio+0xa7/0x330  mpage_readahead+0x380/0x500  read_pages+0x1c1/0xbf0  page_cache_ra_unbounded+0x471/0x6f0  do_page_cache_ra+0xda/0x110  ondemand_readahead+0x442/0xae0  page_cache_async_ra+0x210/0x300  generic_file_buffered_read+0x4d9/0x2130  generic_file_read_iter+0x315/0x490  blkdev_read_iter+0x113/0x1b0  aio_read+0x2ad/0x450  io_submit_one+0xc8e/0x1d60  __se_sys_io_submit+0x125/0x350  do_syscall_64+0x2d/0x40  entry_SYSCALL_64_after_hwframe+0x44/0xa9  Allocated by task 26380:  kasan_save_stack+0x19/0x40  __kasan_kmalloc.constprop.2+0xc1/0xd0  kmem_cache_alloc+0x146/0x440  mempool_alloc+0x125/0x2f0  bio_alloc_bioset+0x353/0x590  mpage_alloc+0x3b/0x240  do_mpage_readpage+0xddf/0x1ef0  mpage_readahead+0x264/0x500  read_pages+0x1c1/0xbf0  page_cache_ra_unbounded+0x471/0x6f0  do_page_cache_ra+0xda/0x110  ondemand_readahead+0x442/0xae0  page_cache_async_ra+0x210/0x300  generic_file_buffered_read+0x4d9/0x2130  generic_file_read_iter+0x315/0x490  blkdev_read_iter+0x113/0x1b0  aio_read+0x2ad/0x450  io_submit_one+0xc8e/0x1d60  __se_sys_io_submit+0x125/0x350  do_syscall_64+0x2d/0x40  entry_SYSCALL_64_after_hwframe+0x44/0xa9  Freed by task 0:  kasan_save_stack+0x19/0x40  kasan_set_track+0x1c/0x30  kasan_set_free_info+0x1b/0x30  __kasan_slab_free+0x111/0x160  kmem_cache_free+0x94/0x460  mempool_free+0xd6/0x320  bio_free+0xe0/0x130  bio_put+0xab/0xe0  bio_endio+0x3a6/0x5d0  blk_update_request+0x590/0x1370  scsi_end_request+0x7d/0x400  scsi_io_completion+0x1aa/0xe50  scsi_softirq_done+0x11b/0x240  blk_mq_complete_request+0xd4/0x120  scsi_mq_done+0xf0/0x200  virtscsi_vq_done+0xbc/0x150  vring_interrupt+0x179/0x390  __handle_irq_event_percpu+0xf7/0x490  handle_irq_event_percpu+0x7b/0x160  handle_irq_event+0xcc/0x170  handle_edge_irq+0x215/0xb20  common_interrupt+0x60/0x120  asm_common_interrupt+0x1e/0x40  Fix this by move BIO_THROTTLED set into the queue_lock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-26 07:01:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71180",
                        "url": "https://ubuntu.com/security/CVE-2025-71180",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  counter: interrupt-cnt: Drop IRQF_NO_THREAD flag  An IRQ handler can either be IRQF_NO_THREAD or acquire spinlock_t, as CONFIG_PROVE_RAW_LOCK_NESTING warns: ============================= [ BUG: Invalid wait context ] 6.18.0-rc1+git... #1 ----------------------------- some-user-space-process/1251 is trying to lock: (&counter->events_list_lock){....}-{3:3}, at: counter_push_event [counter] other info that might help us debug this: context-{2:2} no locks held by some-user-space-process/.... stack backtrace: CPU: 0 UID: 0 PID: 1251 Comm: some-user-space-process 6.18.0-rc1+git... #1 PREEMPT Call trace:  show_stack (C)  dump_stack_lvl  dump_stack  __lock_acquire  lock_acquire  _raw_spin_lock_irqsave  counter_push_event [counter]  interrupt_cnt_isr [interrupt_cnt]  __handle_irq_event_percpu  handle_irq_event  handle_simple_irq  handle_irq_desc  generic_handle_domain_irq  gpio_irq_handler  handle_irq_desc  generic_handle_domain_irq  gic_handle_irq  call_on_irq_stack  do_interrupt_handler  el0_interrupt  __el0_irq_handler_common  el0t_64_irq_handler  el0t_64_irq  ... and Sebastian correctly points out. Remove IRQF_NO_THREAD as an alternative to switching to raw_spinlock_t, because the latter would limit all potential nested locks to raw_spinlock_t only.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22980",
                        "url": "https://ubuntu.com/security/CVE-2026-22980",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfsd: provide locking for v4_end_grace  Writing to v4_end_grace can race with server shutdown and result in memory being accessed after it was freed - reclaim_str_hashtbl in particularly.  We cannot hold nfsd_mutex across the nfsd4_end_grace() call as that is held while client_tracking_op->init() is called and that can wait for an upcall to nfsdcltrack which can write to v4_end_grace, resulting in a deadlock.  nfsd4_end_grace() is also called by the landromat work queue and this doesn't require locking as server shutdown will stop the work and wait for it before freeing anything that nfsd4_end_grace() might access.  However, we must be sure that writing to v4_end_grace doesn't restart the work item after shutdown has already waited for it.  For this we add a new flag protected with nn->client_lock.  It is set only while it is safe to make client tracking calls, and v4_end_grace only schedules work while the flag is set with the spinlock held.  So this patch adds a nfsd_net field \"client_tracking_active\" which is set as described.  Another field \"grace_end_forced\", is set when v4_end_grace is written.  After this is set, and providing client_tracking_active is set, the laundromat is scheduled. This \"grace_end_forced\" field bypasses other checks for whether the grace period has finished.  This resolves a race which can result in use-after-free.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23021",
                        "url": "https://ubuntu.com/security/CVE-2026-23021",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: pegasus: fix memory leak in update_eth_regs_async()  When asynchronously writing to the device registers and if usb_submit_urb() fail, the code fail to release allocated to this point resources.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22976",
                        "url": "https://ubuntu.com/security/CVE-2026-22976",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate in qfq_reset  `qfq_class->leaf_qdisc->q.qlen > 0` does not imply that the class itself is active.  Two qfq_class objects may point to the same leaf_qdisc. This happens when:  1. one QFQ qdisc is attached to the dev as the root qdisc, and  2. another QFQ qdisc is temporarily referenced (e.g., via qdisc_get() / qdisc_put()) and is pending to be destroyed, as in function tc_new_tfilter.  When packets are enqueued through the root QFQ qdisc, the shared leaf_qdisc->q.qlen increases. At the same time, the second QFQ qdisc triggers qdisc_put and qdisc_destroy: the qdisc enters qfq_reset() with its own q->q.qlen == 0, but its class's leaf qdisc->q.qlen > 0. Therefore, the qfq_reset would wrongly deactivate an inactive aggregate and trigger a null-deref in qfq_deactivate_agg:  [    0.903172] BUG: kernel NULL pointer dereference, address: 0000000000000000 [    0.903571] #PF: supervisor write access in kernel mode [    0.903860] #PF: error_code(0x0002) - not-present page [    0.904177] PGD 10299b067 P4D 10299b067 PUD 10299c067 PMD 0 [    0.904502] Oops: Oops: 0002 [#1] SMP NOPTI [    0.904737] CPU: 0 UID: 0 PID: 135 Comm: exploit Not tainted 6.19.0-rc3+ #2 NONE [    0.905157] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014 [    0.905754] RIP: 0010:qfq_deactivate_agg (include/linux/list.h:992 (discriminator 2) include/linux/list.h:1006 (discriminator 2) net/sched/sch_qfq.c:1367 (discriminator 2) net/sched/sch_qfq.c:1393 (discriminator 2)) [    0.906046] Code: 0f 84 4d 01 00 00 48 89 70 18 8b 4b 10 48 c7 c2 ff ff ff ff 48 8b 78 08 48 d3 e2 48 21 f2 48 2b 13 48 8b 30 48 d3 ea 8b 4b 18 0  Code starting with the faulting instruction ===========================================    0:\t0f 84 4d 01 00 00    \tje     0x153    6:\t48 89 70 18          \tmov    %rsi,0x18(%rax)    a:\t8b 4b 10             \tmov    0x10(%rbx),%ecx    d:\t48 c7 c2 ff ff ff ff \tmov    $0xffffffffffffffff,%rdx   14:\t48 8b 78 08          \tmov    0x8(%rax),%rdi   18:\t48 d3 e2             \tshl    %cl,%rdx   1b:\t48 21 f2             \tand    %rsi,%rdx   1e:\t48 2b 13             \tsub    (%rbx),%rdx   21:\t48 8b 30             \tmov    (%rax),%rsi   24:\t48 d3 ea             \tshr    %cl,%rdx   27:\t8b 4b 18             \tmov    0x18(%rbx),%ecx \t... [    0.907095] RSP: 0018:ffffc900004a39a0 EFLAGS: 00010246 [    0.907368] RAX: ffff8881043a0880 RBX: ffff888102953340 RCX: 0000000000000000 [    0.907723] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 [    0.908100] RBP: ffff888102952180 R08: 0000000000000000 R09: 0000000000000000 [    0.908451] R10: ffff8881043a0000 R11: 0000000000000000 R12: ffff888102952000 [    0.908804] R13: ffff888102952180 R14: ffff8881043a0ad8 R15: ffff8881043a0880 [    0.909179] FS:  000000002a1a0380(0000) GS:ffff888196d8d000(0000) knlGS:0000000000000000 [    0.909572] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [    0.909857] CR2: 0000000000000000 CR3: 0000000102993002 CR4: 0000000000772ef0 [    0.910247] PKRU: 55555554 [    0.910391] Call Trace: [    0.910527]  <TASK> [    0.910638]  qfq_reset_qdisc (net/sched/sch_qfq.c:357 net/sched/sch_qfq.c:1485) [    0.910826]  qdisc_reset (include/linux/skbuff.h:2195 include/linux/skbuff.h:2501 include/linux/skbuff.h:3424 include/linux/skbuff.h:3430 net/sched/sch_generic.c:1036) [    0.911040]  __qdisc_destroy (net/sched/sch_generic.c:1076) [    0.911236]  tc_new_tfilter (net/sched/cls_api.c:2447) [    0.911447]  rtnetlink_rcv_msg (net/core/rtnetlink.c:6958) [    0.911663]  ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6861) [    0.911894]  netlink_rcv_skb (net/netlink/af_netlink.c:2550) [    0.912100]  netlink_unicast (net/netlink/af_netlink.c:1319 net/netlink/af_netlink.c:1344) [    0.912296]  ? __alloc_skb (net/core/skbuff.c:706) [    0.912484]  netlink_sendmsg (net/netlink/af ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-21 07:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22977",
                        "url": "https://ubuntu.com/security/CVE-2026-22977",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sock: fix hardened usercopy panic in sock_recv_errqueue  skbuff_fclone_cache was created without defining a usercopy region, [1] unlike skbuff_head_cache which properly whitelists the cb[] field. [2] This causes a usercopy BUG() when CONFIG_HARDENED_USERCOPY is enabled and the kernel attempts to copy sk_buff.cb data to userspace via sock_recv_errqueue() -> put_cmsg().  The crash occurs when: 1. TCP allocates an skb using alloc_skb_fclone()    (from skbuff_fclone_cache) [1] 2. The skb is cloned via skb_clone() using the pre-allocated fclone [3] 3. The cloned skb is queued to sk_error_queue for timestamp reporting 4. Userspace reads the error queue via recvmsg(MSG_ERRQUEUE) 5. sock_recv_errqueue() calls put_cmsg() to copy serr->ee from skb->cb [4] 6. __check_heap_object() fails because skbuff_fclone_cache has no    usercopy whitelist [5]  When cloned skbs allocated from skbuff_fclone_cache are used in the socket error queue, accessing the sock_exterr_skb structure in skb->cb via put_cmsg() triggers a usercopy hardening violation:  [    5.379589] usercopy: Kernel memory exposure attempt detected from SLUB object 'skbuff_fclone_cache' (offset 296, size 16)! [    5.382796] kernel BUG at mm/usercopy.c:102! [    5.383923] Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI [    5.384903] CPU: 1 UID: 0 PID: 138 Comm: poc_put_cmsg Not tainted 6.12.57 #7 [    5.384903] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [    5.384903] RIP: 0010:usercopy_abort+0x6c/0x80 [    5.384903] Code: 1a 86 51 48 c7 c2 40 15 1a 86 41 52 48 c7 c7 c0 15 1a 86 48 0f 45 d6 48 c7 c6 80 15 1a 86 48 89 c1 49 0f 45 f3 e8 84 27 88 ff <0f> 0b 490 [    5.384903] RSP: 0018:ffffc900006f77a8 EFLAGS: 00010246 [    5.384903] RAX: 000000000000006f RBX: ffff88800f0ad2a8 RCX: 1ffffffff0f72e74 [    5.384903] RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffffffff87b973a0 [    5.384903] RBP: 0000000000000010 R08: 0000000000000000 R09: fffffbfff0f72e74 [    5.384903] R10: 0000000000000003 R11: 79706f6372657375 R12: 0000000000000001 [    5.384903] R13: ffff88800f0ad2b8 R14: ffffea00003c2b40 R15: ffffea00003c2b00 [    5.384903] FS:  0000000011bc4380(0000) GS:ffff8880bf100000(0000) knlGS:0000000000000000 [    5.384903] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [    5.384903] CR2: 000056aa3b8e5fe4 CR3: 000000000ea26004 CR4: 0000000000770ef0 [    5.384903] PKRU: 55555554 [    5.384903] Call Trace: [    5.384903]  <TASK> [    5.384903]  __check_heap_object+0x9a/0xd0 [    5.384903]  __check_object_size+0x46c/0x690 [    5.384903]  put_cmsg+0x129/0x5e0 [    5.384903]  sock_recv_errqueue+0x22f/0x380 [    5.384903]  tls_sw_recvmsg+0x7ed/0x1960 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5 [    5.384903]  ? schedule+0x6d/0x270 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5 [    5.384903]  ? mutex_unlock+0x81/0xd0 [    5.384903]  ? __pfx_mutex_unlock+0x10/0x10 [    5.384903]  ? __pfx_tls_sw_recvmsg+0x10/0x10 [    5.384903]  ? _raw_spin_lock_irqsave+0x8f/0xf0 [    5.384903]  ? _raw_read_unlock_irqrestore+0x20/0x40 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5  The crash offset 296 corresponds to skb2->cb within skbuff_fclones:   - sizeof(struct sk_buff) = 232 - offsetof(struct sk_buff, cb) = 40 -   offset of skb2.cb in fclones = 232 + 40 = 272 - crash offset 296 =   272 + 24 (inside sock_exterr_skb.ee)  This patch uses a local stack variable as a bounce buffer to avoid the hardened usercopy check failure.  [1] https://elixir.bootlin.com/linux/v6.12.62/source/net/ipv4/tcp.c#L885 [2] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5104 [3] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5566 [4] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5491 [5] https://elixir.bootlin.com/linux/v6.12.62/source/mm/slub.c#L5719",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-21 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22982",
                        "url": "https://ubuntu.com/security/CVE-2026-22982",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: mscc: ocelot: Fix crash when adding interface under a lag  Commit 15faa1f67ab4 (\"lan966x: Fix crash when adding interface under a lag\") fixed a similar issue in the lan966x driver caused by a NULL pointer dereference. The ocelot_set_aggr_pgids() function in the ocelot driver has similar logic and is susceptible to the same crash.  This issue specifically affects the ocelot_vsc7514.c frontend, which leaves unused ports as NULL pointers. The felix_vsc9959.c frontend is unaffected as it uses the DSA framework which registers all ports.  Fix this by checking if the port pointer is valid before accessing it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23019",
                        "url": "https://ubuntu.com/security/CVE-2026-23019",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: marvell: prestera: fix NULL dereference on devlink_alloc() failure  devlink_alloc() may return NULL on allocation failure, but prestera_devlink_alloc() unconditionally calls devlink_priv() on the returned pointer.  This leads to a NULL pointer dereference if devlink allocation fails. Add a check for a NULL devlink pointer and return NULL early to avoid the crash.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-22121",
                        "url": "https://ubuntu.com/security/CVE-2025-22121",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: fix out-of-bound read in ext4_xattr_inode_dec_ref_all()  There's issue as follows: BUG: KASAN: use-after-free in ext4_xattr_inode_dec_ref_all+0x6ff/0x790 Read of size 4 at addr ffff88807b003000 by task syz-executor.0/15172  CPU: 3 PID: 15172 Comm: syz-executor.0 Call Trace:  __dump_stack lib/dump_stack.c:82 [inline]  dump_stack+0xbe/0xfd lib/dump_stack.c:123  print_address_description.constprop.0+0x1e/0x280 mm/kasan/report.c:400  __kasan_report.cold+0x6c/0x84 mm/kasan/report.c:560  kasan_report+0x3a/0x50 mm/kasan/report.c:585  ext4_xattr_inode_dec_ref_all+0x6ff/0x790 fs/ext4/xattr.c:1137  ext4_xattr_delete_inode+0x4c7/0xda0 fs/ext4/xattr.c:2896  ext4_evict_inode+0xb3b/0x1670 fs/ext4/inode.c:323  evict+0x39f/0x880 fs/inode.c:622  iput_final fs/inode.c:1746 [inline]  iput fs/inode.c:1772 [inline]  iput+0x525/0x6c0 fs/inode.c:1758  ext4_orphan_cleanup fs/ext4/super.c:3298 [inline]  ext4_fill_super+0x8c57/0xba40 fs/ext4/super.c:5300  mount_bdev+0x355/0x410 fs/super.c:1446  legacy_get_tree+0xfe/0x220 fs/fs_context.c:611  vfs_get_tree+0x8d/0x2f0 fs/super.c:1576  do_new_mount fs/namespace.c:2983 [inline]  path_mount+0x119a/0x1ad0 fs/namespace.c:3316  do_mount+0xfc/0x110 fs/namespace.c:3329  __do_sys_mount fs/namespace.c:3540 [inline]  __se_sys_mount+0x219/0x2e0 fs/namespace.c:3514  do_syscall_64+0x33/0x40 arch/x86/entry/common.c:46  entry_SYSCALL_64_after_hwframe+0x67/0xd1  Memory state around the buggy address:  ffff88807b002f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ffff88807b002f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffff88807b003000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff                    ^  ffff88807b003080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ffff88807b003100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  Above issue happens as ext4_xattr_delete_inode() isn't check xattr is valid if xattr is in inode. To solve above issue call xattr_check_inode() check if xattr if valid in inode. In fact, we can directly verify in ext4_iget_extra_inode(), so that there is no divergent verification.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22992",
                        "url": "https://ubuntu.com/security/CVE-2026-22992",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: return the handler error from mon_handle_auth_done()  Currently any error from ceph_auth_handle_reply_done() is propagated via finish_auth() but isn't returned from mon_handle_auth_done().  This results in higher layers learning that (despite the monitor considering us to be successfully authenticated) something went wrong in the authentication phase and reacting accordingly, but msgr2 still trying to proceed with establishing the session in the background.  In the case of secure mode this can trigger a WARN in setup_crypto() and later lead to a NULL pointer dereference inside of prepare_auth_signature().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22991",
                        "url": "https://ubuntu.com/security/CVE-2026-22991",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make free_choose_arg_map() resilient to partial allocation  free_choose_arg_map() may dereference a NULL pointer if its caller fails after a partial allocation.  For example, in decode_choose_args(), if allocation of arg_map->args fails, execution jumps to the fail label and free_choose_arg_map() is called. Since arg_map->size is updated to a non-zero value before memory allocation, free_choose_arg_map() will iterate over arg_map->args and dereference a NULL pointer.  To prevent this potential NULL pointer dereference and make free_choose_arg_map() more resilient, add checks for pointers before iterating.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22990",
                        "url": "https://ubuntu.com/security/CVE-2026-22990",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: replace overzealous BUG_ON in osdmap_apply_incremental()  If the osdmap is (maliciously) corrupted such that the incremental osdmap epoch is different from what is expected, there is no need to BUG.  Instead, just declare the incremental osdmap to be invalid.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22984",
                        "url": "https://ubuntu.com/security/CVE-2026-22984",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: prevent potential out-of-bounds reads in handle_auth_done()  Perform an explicit bounds check on payload_len to avoid a possible out-of-bounds access in the callout.  [ idryomov: changelog ]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22978",
                        "url": "https://ubuntu.com/security/CVE-2026-22978",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: avoid kernel-infoleak from struct iw_point  struct iw_point has a 32bit hole on 64bit arches.  struct iw_point {   void __user   *pointer;       /* Pointer to the data  (in user space) */   __u16         length;         /* number of fields or size in bytes */   __u16         flags;          /* Optional params */ };  Make sure to zero the structure to avoid disclosing 32bits of kernel data to user space.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23020",
                        "url": "https://ubuntu.com/security/CVE-2026-23020",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: 3com: 3c59x: fix possible null dereference in vortex_probe1()  pdev can be null and free_ring: can be called in 1297 with a null pdev.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-49968",
                        "url": "https://ubuntu.com/security/CVE-2024-49968",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: filesystems without casefold feature cannot be mounted with siphash  When mounting the ext4 filesystem, if the default hash version is set to DX_HASH_SIPHASH but the casefold feature is not set, exit the mounting.",
                        "cve_priority": "low",
                        "cve_public_date": "2024-10-21 18:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-36927",
                        "url": "https://ubuntu.com/security/CVE-2024-36927",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: Fix uninit-value access in __ip_make_skb()  KMSAN reported uninit-value access in __ip_make_skb() [1].  __ip_make_skb() tests HDRINCL to know if the skb has icmphdr. However, HDRINCL can cause a race condition. If calling setsockopt(2) with IP_HDRINCL changes HDRINCL while __ip_make_skb() is running, the function will access icmphdr in the skb even if it is not included. This causes the issue reported by KMSAN.  Check FLOWI_FLAG_KNOWN_NH on fl4->flowi4_flags instead of testing HDRINCL on the socket.  Also, fl4->fl4_icmp_type and fl4->fl4_icmp_code are not initialized. These are union in struct flowi4 and are implicitly initialized by flowi4_init_output(), but we should not rely on specific union layout.  Initialize these explicitly in raw_sendmsg().  [1] BUG: KMSAN: uninit-value in __ip_make_skb+0x2b74/0x2d20 net/ipv4/ip_output.c:1481  __ip_make_skb+0x2b74/0x2d20 net/ipv4/ip_output.c:1481  ip_finish_skb include/net/ip.h:243 [inline]  ip_push_pending_frames+0x4c/0x5c0 net/ipv4/ip_output.c:1508  raw_sendmsg+0x2381/0x2690 net/ipv4/raw.c:654  inet_sendmsg+0x27b/0x2a0 net/ipv4/af_inet.c:851  sock_sendmsg_nosec net/socket.c:730 [inline]  __sock_sendmsg+0x274/0x3c0 net/socket.c:745  __sys_sendto+0x62c/0x7b0 net/socket.c:2191  __do_sys_sendto net/socket.c:2203 [inline]  __se_sys_sendto net/socket.c:2199 [inline]  __x64_sys_sendto+0x130/0x200 net/socket.c:2199  do_syscall_64+0xd8/0x1f0 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x6d/0x75  Uninit was created at:  slab_post_alloc_hook mm/slub.c:3804 [inline]  slab_alloc_node mm/slub.c:3845 [inline]  kmem_cache_alloc_node+0x5f6/0xc50 mm/slub.c:3888  kmalloc_reserve+0x13c/0x4a0 net/core/skbuff.c:577  __alloc_skb+0x35a/0x7c0 net/core/skbuff.c:668  alloc_skb include/linux/skbuff.h:1318 [inline]  __ip_append_data+0x49ab/0x68c0 net/ipv4/ip_output.c:1128  ip_append_data+0x1e7/0x260 net/ipv4/ip_output.c:1365  raw_sendmsg+0x22b1/0x2690 net/ipv4/raw.c:648  inet_sendmsg+0x27b/0x2a0 net/ipv4/af_inet.c:851  sock_sendmsg_nosec net/socket.c:730 [inline]  __sock_sendmsg+0x274/0x3c0 net/socket.c:745  __sys_sendto+0x62c/0x7b0 net/socket.c:2191  __do_sys_sendto net/socket.c:2203 [inline]  __se_sys_sendto net/socket.c:2199 [inline]  __x64_sys_sendto+0x130/0x200 net/socket.c:2199  do_syscall_64+0xd8/0x1f0 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x6d/0x75  CPU: 1 PID: 15709 Comm: syz-executor.7 Not tainted 6.8.0-11567-gb3603fcb79b1 #25 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-1.fc39 04/01/2014",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-05-30 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-36903",
                        "url": "https://ubuntu.com/security/CVE-2024-36903",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: Fix potential uninit-value access in __ip6_make_skb()  As it was done in commit fc1092f51567 (\"ipv4: Fix uninit-value access in __ip_make_skb()\") for IPv4, check FLOWI_FLAG_KNOWN_NH on fl6->flowi6_flags instead of testing HDRINCL on the socket to avoid a race condition which causes uninit-value access.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-05-30 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38556",
                        "url": "https://ubuntu.com/security/CVE-2025-38556",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  HID: core: Harden s32ton() against conversion to 0 bits  Testing by the syzbot fuzzer showed that the HID core gets a shift-out-of-bounds exception when it tries to convert a 32-bit quantity to a 0-bit quantity.  Ideally this should never occur, but there are buggy devices and some might have a report field with size set to zero; we shouldn't reject the report or the device just because of that.  Instead, harden the s32ton() routine so that it returns a reasonable result instead of crashing when it is called with the number of bits set to 0 -- the same as what snto32() does.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-08-19 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-46830",
                        "url": "https://ubuntu.com/security/CVE-2024-46830",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: x86: Acquire kvm->srcu when handling KVM_SET_VCPU_EVENTS  Grab kvm->srcu when processing KVM_SET_VCPU_EVENTS, as KVM will forcibly leave nested VMX/SVM if SMM mode is being toggled, and leaving nested VMX reads guest memory.  Note, kvm_vcpu_ioctl_x86_set_vcpu_events() can also be called from KVM_RUN via sync_regs(), which already holds SRCU.  I.e. trying to precisely use kvm_vcpu_srcu_read_lock() around the problematic SMM code would cause problems.  Acquiring SRCU isn't all that expensive, so for simplicity, grab it unconditionally for KVM_SET_VCPU_EVENTS.   =============================  WARNING: suspicious RCU usage  6.10.0-rc7-332d2c1d713e-next-vm #552 Not tainted  -----------------------------  include/linux/kvm_host.h:1027 suspicious rcu_dereference_check() usage!   other info that might help us debug this:   rcu_scheduler_active = 2, debug_locks = 1  1 lock held by repro/1071:   #0: ffff88811e424430 (&vcpu->mutex){+.+.}-{3:3}, at: kvm_vcpu_ioctl+0x7d/0x970 [kvm]   stack backtrace:  CPU: 15 PID: 1071 Comm: repro Not tainted 6.10.0-rc7-332d2c1d713e-next-vm #552  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015  Call Trace:   <TASK>   dump_stack_lvl+0x7f/0x90   lockdep_rcu_suspicious+0x13f/0x1a0   kvm_vcpu_gfn_to_memslot+0x168/0x190 [kvm]   kvm_vcpu_read_guest+0x3e/0x90 [kvm]   nested_vmx_load_msr+0x6b/0x1d0 [kvm_intel]   load_vmcs12_host_state+0x432/0xb40 [kvm_intel]   vmx_leave_nested+0x30/0x40 [kvm_intel]   kvm_vcpu_ioctl_x86_set_vcpu_events+0x15d/0x2b0 [kvm]   kvm_arch_vcpu_ioctl+0x1107/0x1750 [kvm]   ? mark_held_locks+0x49/0x70   ? kvm_vcpu_ioctl+0x7d/0x970 [kvm]   ? kvm_vcpu_ioctl+0x497/0x970 [kvm]   kvm_vcpu_ioctl+0x497/0x970 [kvm]   ? lock_acquire+0xba/0x2d0   ? find_held_lock+0x2b/0x80   ? do_user_addr_fault+0x40c/0x6f0   ? lock_release+0xb7/0x270   __x64_sys_ioctl+0x82/0xb0   do_syscall_64+0x6c/0x170   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7ff11eb1b539   </TASK>",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-09-27 13:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38129",
                        "url": "https://ubuntu.com/security/CVE-2025-38129",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  page_pool: Fix use-after-free in page_pool_recycle_in_ring  syzbot reported a uaf in page_pool_recycle_in_ring:  BUG: KASAN: slab-use-after-free in lock_release+0x151/0xa30 kernel/locking/lockdep.c:5862 Read of size 8 at addr ffff8880286045a0 by task syz.0.284/6943  CPU: 0 UID: 0 PID: 6943 Comm: syz.0.284 Not tainted 6.13.0-rc3-syzkaller-gdfa94ce54f41 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0x169/0x550 mm/kasan/report.c:489  kasan_report+0x143/0x180 mm/kasan/report.c:602  lock_release+0x151/0xa30 kernel/locking/lockdep.c:5862  __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:165 [inline]  _raw_spin_unlock_bh+0x1b/0x40 kernel/locking/spinlock.c:210  spin_unlock_bh include/linux/spinlock.h:396 [inline]  ptr_ring_produce_bh include/linux/ptr_ring.h:164 [inline]  page_pool_recycle_in_ring net/core/page_pool.c:707 [inline]  page_pool_put_unrefed_netmem+0x748/0xb00 net/core/page_pool.c:826  page_pool_put_netmem include/net/page_pool/helpers.h:323 [inline]  page_pool_put_full_netmem include/net/page_pool/helpers.h:353 [inline]  napi_pp_put_page+0x149/0x2b0 net/core/skbuff.c:1036  skb_pp_recycle net/core/skbuff.c:1047 [inline]  skb_free_head net/core/skbuff.c:1094 [inline]  skb_release_data+0x6c4/0x8a0 net/core/skbuff.c:1125  skb_release_all net/core/skbuff.c:1190 [inline]  __kfree_skb net/core/skbuff.c:1204 [inline]  sk_skb_reason_drop+0x1c9/0x380 net/core/skbuff.c:1242  kfree_skb_reason include/linux/skbuff.h:1263 [inline]  __skb_queue_purge_reason include/linux/skbuff.h:3343 [inline]  root cause is:  page_pool_recycle_in_ring   ptr_ring_produce     spin_lock(&r->producer_lock);     WRITE_ONCE(r->queue[r->producer++], ptr)       //recycle last page to pool \t\t\t\tpage_pool_release \t\t\t\t  page_pool_scrub \t\t\t\t    page_pool_empty_ring \t\t\t\t      ptr_ring_consume \t\t\t\t      page_pool_return_page  //release all page \t\t\t\t  __page_pool_destroy \t\t\t\t     free_percpu(pool->recycle_stats); \t\t\t\t     free(pool) //free       spin_unlock(&r->producer_lock); //pool->ring uaf read   recycle_stat_inc(pool, ring);  page_pool can be free while page pool recycle the last page in ring. Add producer-lock barrier to page_pool_release to prevent the page pool from being free before all pages have been recycled.  recycle_stat_inc() is empty when CONFIG_PAGE_POOL_STATS is not enabled, which will trigger Wempty-body build warning. Add definition for pool stat macro to fix warning.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-07-03 09:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2022-49635",
                        "url": "https://ubuntu.com/security/CVE-2022-49635",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915/selftests: fix subtraction overflow bug  On some machines hole_end can be small enough to cause subtraction overflow. On the other side (addr + 2 * min_alignment) can overflow in case of mock tests. This patch should handle both cases.  (cherry picked from commit ab3edc679c552a466e4bf0b11af3666008bd65a2)",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-26 07:01:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-22111",
                        "url": "https://ubuntu.com/security/CVE-2025-22111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: Remove RTNL dance for SIOCBRADDIF and SIOCBRDELIF.  SIOCBRDELIF is passed to dev_ioctl() first and later forwarded to br_ioctl_call(), which causes unnecessary RTNL dance and the splat below [0] under RTNL pressure.  Let's say Thread A is trying to detach a device from a bridge and Thread B is trying to remove the bridge.  In dev_ioctl(), Thread A bumps the bridge device's refcnt by netdev_hold() and releases RTNL because the following br_ioctl_call() also re-acquires RTNL.  In the race window, Thread B could acquire RTNL and try to remove the bridge device.  Then, rtnl_unlock() by Thread B will release RTNL and wait for netdev_put() by Thread A.  Thread A, however, must hold RTNL after the unlock in dev_ifsioc(), which may take long under RTNL pressure, resulting in the splat by Thread B.    Thread A (SIOCBRDELIF)           Thread B (SIOCBRDELBR)   ----------------------           ----------------------   sock_ioctl                       sock_ioctl   `- sock_do_ioctl                 `- br_ioctl_call      `- dev_ioctl                     `- br_ioctl_stub         |- rtnl_lock                     |         |- dev_ifsioc                    '         '  |- dev = __dev_get_by_name(...)            |- netdev_hold(dev, ...)      .        /   |- rtnl_unlock  ------.       |        |   |- br_ioctl_call       `--->  |- rtnl_lock   Race |   |  `- br_ioctl_stub           |- br_del_bridge   Window   |     |                       |  |- dev = __dev_get_by_name(...)        |   |     |  May take long        |  `- br_dev_delete(dev, ...)        |   |     |  under RTNL pressure  |     `- unregister_netdevice_queue(dev, ...)        |   |     |               |       `- rtnl_unlock        \\   |     |- rtnl_lock  <-'          `- netdev_run_todo            |     |- ...                        `- netdev_run_todo            |     `- rtnl_unlock                   |- __rtnl_unlock            |                                      |- netdev_wait_allrefs_any            |- netdev_put(dev, ...)  <----------------'                                                 Wait refcnt decrement                                                 and log splat below  To avoid blocking SIOCBRDELBR unnecessarily, let's not call dev_ioctl() for SIOCBRADDIF and SIOCBRDELIF.  In the dev_ioctl() path, we do the following:    1. Copy struct ifreq by get_user_ifreq in sock_do_ioctl()   2. Check CAP_NET_ADMIN in dev_ioctl()   3. Call dev_load() in dev_ioctl()   4. Fetch the master dev from ifr.ifr_name in dev_ifsioc()  3. can be done by request_module() in br_ioctl_call(), so we move 1., 2., and 4. to br_ioctl_stub().  Note that 2. is also checked later in add_del_if(), but it's better performed before RTNL.  SIOCBRADDIF and SIOCBRDELIF have been processed in dev_ioctl() since the pre-git era, and there seems to be no specific reason to process them there.  [0]: unregister_netdevice: waiting for wpan3 to become free. Usage count = 2 ref_tracker: wpan3@ffff8880662d8608 has 1/1 users at      __netdev_tracker_alloc include/linux/netdevice.h:4282 [inline]      netdev_hold include/linux/netdevice.h:4311 [inline]      dev_ifsioc+0xc6a/0x1160 net/core/dev_ioctl.c:624      dev_ioctl+0x255/0x10c0 net/core/dev_ioctl.c:826      sock_do_ioctl+0x1ca/0x260 net/socket.c:1213      sock_ioctl+0x23a/0x6c0 net/socket.c:1318      vfs_ioctl fs/ioctl.c:51 [inline]      __do_sys_ioctl fs/ioctl.c:906 [inline]      __se_sys_ioctl fs/ioctl.c:892 [inline]      __x64_sys_ioctl+0x1a4/0x210 fs/ioctl.c:892      do_syscall_x64 arch/x86/entry/common.c:52 [inline]      do_syscall_64+0xcb/0x250 arch/x86/entry/common.c:83      entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71127",
                        "url": "https://ubuntu.com/security/CVE-2025-71127",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: mac80211: Discard Beacon frames to non-broadcast address  Beacon frames are required to be sent to the broadcast address, see IEEE Std 802.11-2020, 11.1.3.1 (\"The Address 1 field of the Beacon .. frame shall be set to the broadcast address\"). A unicast Beacon frame might be used as a targeted attack to get one of the associated STAs to do something (e.g., using CSA to move it to another channel). As such, it is better have strict filtering for this on the received side and discard all Beacon frames that are sent to an unexpected address.  This is even more important for cases where beacon protection is used. The current implementation in mac80211 is correctly discarding unicast Beacon frames if the Protected Frame bit in the Frame Control field is set to 0. However, if that bit is set to 1, the logic used for checking for configured BIGTK(s) does not actually work. If the driver does not have logic for dropping unicast Beacon frames with Protected Frame bit 1, these frames would be accepted in mac80211 processing as valid Beacon frames even though they are not protected. This would allow beacon protection to be bypassed. While the logic for checking beacon protection could be extended to cover this corner case, a more generic check for discard all Beacon frames based on A1=unicast address covers this without needing additional changes.  Address all these issues by dropping received Beacon frames if they are sent to a non-broadcast address.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71081",
                        "url": "https://ubuntu.com/security/CVE-2025-71081",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: stm32: sai: fix OF node leak on probe  The reference taken to the sync provider OF node when probing the platform device is currently only dropped if the set_sync() callback fails during DAI probe.  Make sure to drop the reference on platform probe failures (e.g. probe deferral) and on driver unbind.  This also avoids a potential use-after-free in case the DAI is ever reprobed without first rebinding the platform driver.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71078",
                        "url": "https://ubuntu.com/security/CVE-2025-71078",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  powerpc/64s/slb: Fix SLB multihit issue during SLB preload  On systems using the hash MMU, there is a software SLB preload cache that mirrors the entries loaded into the hardware SLB buffer. This preload cache is subject to periodic eviction — typically after every 256 context switches — to remove old entry.  To optimize performance, the kernel skips switch_mmu_context() in switch_mm_irqs_off() when the prev and next mm_struct are the same. However, on hash MMU systems, this can lead to inconsistencies between the hardware SLB and the software preload cache.  If an SLB entry for a process is evicted from the software cache on one CPU, and the same process later runs on another CPU without executing switch_mmu_context(), the hardware SLB may retain stale entries. If the kernel then attempts to reload that entry, it can trigger an SLB multi-hit error.  The following timeline shows how stale SLB entries are created and can cause a multi-hit error when a process moves between CPUs without a MMU context switch.  CPU 0                                   CPU 1 -----                                    ----- Process P exec                                    swapper/1  load_elf_binary   begin_new_exc     activate_mm      switch_mm_irqs_off       switch_mmu_context        switch_slb        /*         * This invalidates all         * the entries in the HW         * and setup the new HW         * SLB entries as per the         * preload cache.         */ context_switch sched_migrate_task migrates process P to cpu-1  Process swapper/0                       context switch (to process P) (uses mm_struct of Process P)           switch_mm_irqs_off()                                          switch_slb                                            load_slb++                                             /*                                             * load_slb becomes 0 here                                             * and we evict an entry from                                             * the preload cache with                                             * preload_age(). We still                                             * keep HW SLB and preload                                             * cache in sync, that is                                             * because all HW SLB entries                                             * anyways gets evicted in                                             * switch_slb during SLBIA.                                             * We then only add those                                             * entries back in HW SLB,                                             * which are currently                                             * present in preload_cache                                             * (after eviction).                                             */                                         load_elf_binary continues...                                          setup_new_exec()                                           slb_setup_new_exec()                                          sched_switch event                                         sched_migrate_task migrates                                         process P to cpu-0  context_switch from swapper/0 to Process P  switch_mm_irqs_off()   /*    * Since both prev and next mm struct are same we don't call    * switch_mmu_context(). This will cause the HW SLB and SW preload    * cache to go out of sync in preload_new_slb_context. Because there    * was an SLB entry which was evicted from both HW and preload cache    * on cpu-1. Now later in preload_new_slb_context(), when we will try    * to add the same preload entry again, we will add this to the SW    * preload cache and then will add it to the HW SLB. Since on cpu-0    * this entry was never invalidated, hence adding this entry to the HW    * SLB will cause a SLB multi-hit error.    */ load_elf_binary cont ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68803",
                        "url": "https://ubuntu.com/security/CVE-2025-68803",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: NFSv4 file creation neglects setting ACL  An NFSv4 client that sets an ACL with a named principal during file creation retrieves the ACL afterwards, and finds that it is only a default ACL (based on the mode bits) and not the ACL that was requested during file creation. This violates RFC 8881 section 6.4.1.3: \"the ACL attribute is set as given\".  The issue occurs in nfsd_create_setattr(), which calls nfsd_attrs_valid() to determine whether to call nfsd_setattr(). However, nfsd_attrs_valid() checks only for iattr changes and security labels, but not POSIX ACLs. When only an ACL is present, the function returns false, nfsd_setattr() is skipped, and the POSIX ACL is never applied to the inode.  Subsequently, when the client retrieves the ACL, the server finds no POSIX ACL on the inode and returns one generated from the file's mode bits rather than returning the originally-specified ACL.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71120",
                        "url": "https://ubuntu.com/security/CVE-2025-71120",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in gss_read_proxy_verf  A zero length gss_token results in pages == 0 and in_token->pages[0] is NULL. The code unconditionally evaluates page_address(in_token->pages[0]) for the initial memcpy, which can dereference NULL even when the copy length is 0. Guard the first memcpy so it only runs when length > 0.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71113",
                        "url": "https://ubuntu.com/security/CVE-2025-71113",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - zero initialize memory allocated via sock_kmalloc  Several crypto user API contexts and requests allocated with sock_kmalloc() were left uninitialized, relying on callers to set fields explicitly. This resulted in the use of uninitialized data in certain error paths or when new fields are added in the future.  The ACVP patches also contain two user-space interface files: algif_kpp.c and algif_akcipher.c. These too rely on proper initialization of their context structures.  A particular issue has been observed with the newly added 'inflight' variable introduced in af_alg_ctx by commit:    67b164a871af (\"crypto: af_alg - Disallow multiple in-flight AIO requests\")  Because the context is not memset to zero after allocation, the inflight variable has contained garbage values. As a result, af_alg_alloc_areq() has incorrectly returned -EBUSY randomly when the garbage value was interpreted as true:    https://github.com/gregkh/linux/blame/master/crypto/af_alg.c#L1209  The check directly tests ctx->inflight without explicitly comparing against true/false. Since inflight is only ever set to true or false later, an uninitialized value has triggered -EBUSY failures. Zero-initializing memory allocated with sock_kmalloc() ensures inflight and other fields start in a known state, removing random issues caused by uninitialized data.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71068",
                        "url": "https://ubuntu.com/security/CVE-2025-71068",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  svcrdma: bound check rq_pages index in inline path  svc_rdma_copy_inline_range indexed rqstp->rq_pages[rc_curpage] without verifying rc_curpage stays within the allocated page array. Add guards before the first use and after advancing to a new page.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68821",
                        "url": "https://ubuntu.com/security/CVE-2025-68821",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fuse: fix readahead reclaim deadlock  Commit e26ee4efbc79 (\"fuse: allocate ff->release_args only if release is needed\") skips allocating ff->release_args if the server does not implement open. However in doing so, fuse_prepare_release() now skips grabbing the reference on the inode, which makes it possible for an inode to be evicted from the dcache while there are inflight readahead requests. This causes a deadlock if the server triggers reclaim while servicing the readahead request and reclaim attempts to evict the inode of the file being read ahead. Since the folio is locked during readahead, when reclaim evicts the fuse inode and fuse_evict_inode() attempts to remove all folios associated with the inode from the page cache (truncate_inode_pages_range()), reclaim will block forever waiting for the lock since readahead cannot relinquish the lock because it is itself blocked in reclaim:  >>> stack_trace(1504735)  folio_wait_bit_common (mm/filemap.c:1308:4)  folio_lock (./include/linux/pagemap.h:1052:3)  truncate_inode_pages_range (mm/truncate.c:336:10)  fuse_evict_inode (fs/fuse/inode.c:161:2)  evict (fs/inode.c:704:3)  dentry_unlink_inode (fs/dcache.c:412:3)  __dentry_kill (fs/dcache.c:615:3)  shrink_kill (fs/dcache.c:1060:12)  shrink_dentry_list (fs/dcache.c:1087:3)  prune_dcache_sb (fs/dcache.c:1168:2)  super_cache_scan (fs/super.c:221:10)  do_shrink_slab (mm/shrinker.c:435:9)  shrink_slab (mm/shrinker.c:626:10)  shrink_node (mm/vmscan.c:5951:2)  shrink_zones (mm/vmscan.c:6195:3)  do_try_to_free_pages (mm/vmscan.c:6257:3)  do_swap_page (mm/memory.c:4136:11)  handle_pte_fault (mm/memory.c:5562:10)  handle_mm_fault (mm/memory.c:5870:9)  do_user_addr_fault (arch/x86/mm/fault.c:1338:10)  handle_page_fault (arch/x86/mm/fault.c:1481:3)  exc_page_fault (arch/x86/mm/fault.c:1539:2)  asm_exc_page_fault+0x22/0x27  Fix this deadlock by allocating ff->release_args and grabbing the reference on the inode when preparing the file for release even if the server does not implement open. The inode reference will be dropped when the last reference on the fuse file is dropped (see fuse_file_put() -> fuse_release_end()).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68796",
                        "url": "https://ubuntu.com/security/CVE-2025-68796",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid updating zero-sized extent in extent cache  As syzbot reported:  F2FS-fs (loop0): __update_extent_tree_range: extent len is zero, type: 0, extent [0, 0, 0], age [0, 0] ------------[ cut here ]------------ kernel BUG at fs/f2fs/extent_cache.c:678! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 0 UID: 0 PID: 5336 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:__update_extent_tree_range+0x13bc/0x1500 fs/f2fs/extent_cache.c:678 Call Trace:  <TASK>  f2fs_update_read_extent_cache_range+0x192/0x3e0 fs/f2fs/extent_cache.c:1085  f2fs_do_zero_range fs/f2fs/file.c:1657 [inline]  f2fs_zero_range+0x10c1/0x1580 fs/f2fs/file.c:1737  f2fs_fallocate+0x583/0x990 fs/f2fs/file.c:2030  vfs_fallocate+0x669/0x7e0 fs/open.c:342  ioctl_preallocate fs/ioctl.c:289 [inline]  file_ioctl+0x611/0x780 fs/ioctl.c:-1  do_vfs_ioctl+0xb33/0x1430 fs/ioctl.c:576  __do_sys_ioctl fs/ioctl.c:595 [inline]  __se_sys_ioctl+0x82/0x170 fs/ioctl.c:583  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f07bc58eec9  In error path of f2fs_zero_range(), it may add a zero-sized extent into extent cache, it should be avoided.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71105",
                        "url": "https://ubuntu.com/security/CVE-2025-71105",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: use global inline_xattr_slab instead of per-sb slab cache  As Hong Yun reported in mailing list:  loop7: detected capacity change from 0 to 131072 ------------[ cut here ]------------ kmem_cache of name 'f2fs_xattr_entry-7:7' already exists WARNING: CPU: 0 PID: 24426 at mm/slab_common.c:110 kmem_cache_sanity_check mm/slab_common.c:109 [inline] WARNING: CPU: 0 PID: 24426 at mm/slab_common.c:110 __kmem_cache_create_args+0xa6/0x320 mm/slab_common.c:307 CPU: 0 UID: 0 PID: 24426 Comm: syz.7.1370 Not tainted 6.17.0-rc4 #1 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 RIP: 0010:kmem_cache_sanity_check mm/slab_common.c:109 [inline] RIP: 0010:__kmem_cache_create_args+0xa6/0x320 mm/slab_common.c:307 Call Trace:  __kmem_cache_create include/linux/slab.h:353 [inline]  f2fs_kmem_cache_create fs/f2fs/f2fs.h:2943 [inline]  f2fs_init_xattr_caches+0xa5/0xe0 fs/f2fs/xattr.c:843  f2fs_fill_super+0x1645/0x2620 fs/f2fs/super.c:4918  get_tree_bdev_flags+0x1fb/0x260 fs/super.c:1692  vfs_get_tree+0x43/0x140 fs/super.c:1815  do_new_mount+0x201/0x550 fs/namespace.c:3808  do_mount fs/namespace.c:4136 [inline]  __do_sys_mount fs/namespace.c:4347 [inline]  __se_sys_mount+0x298/0x2f0 fs/namespace.c:4324  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0x8e/0x3a0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x76/0x7e  The bug can be reproduced w/ below scripts: - mount /dev/vdb /mnt1 - mount /dev/vdc /mnt2 - umount /mnt1 - mounnt /dev/vdb /mnt1  The reason is if we created two slab caches, named f2fs_xattr_entry-7:3 and f2fs_xattr_entry-7:7, and they have the same slab size. Actually, slab system will only create one slab cache core structure which has slab name of \"f2fs_xattr_entry-7:3\", and two slab caches share the same structure and cache address.  So, if we destroy f2fs_xattr_entry-7:3 cache w/ cache address, it will decrease reference count of slab cache, rather than release slab cache entirely, since there is one more user has referenced the cache.  Then, if we try to create slab cache w/ name \"f2fs_xattr_entry-7:3\" again, slab system will find that there is existed cache which has the same name and trigger the warning.  Let's changes to use global inline_xattr_slab instead of per-sb slab cache for fixing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68344",
                        "url": "https://ubuntu.com/security/CVE-2025-68344",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: wavefront: Fix integer overflow in sample size validation  The wavefront_send_sample() function has an integer overflow issue when validating sample size. The header->size field is u32 but gets cast to int for comparison with dev->freemem  Fix by using unsigned comparison to avoid integer overflow.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71077",
                        "url": "https://ubuntu.com/security/CVE-2025-71077",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tpm: Cap the number of PCR banks  tpm2_get_pcr_allocation() does not cap any upper limit for the number of banks. Cap the limit to eight banks so that out of bounds values coming from external I/O cause on only limited harm.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68282",
                        "url": "https://ubuntu.com/security/CVE-2025-68282",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: udc: fix use-after-free in usb_gadget_state_work  A race condition during gadget teardown can lead to a use-after-free in usb_gadget_state_work(), as reported by KASAN:    BUG: KASAN: invalid-access in sysfs_notify+0x2c/0xd0   Workqueue: events usb_gadget_state_work  The fundamental race occurs because a concurrent event (e.g., an interrupt) can call usb_gadget_set_state() and schedule gadget->work at any time during the cleanup process in usb_del_gadget().  Commit 399a45e5237c (\"usb: gadget: core: flush gadget workqueue after device removal\") attempted to fix this by moving flush_work() to after device_del(). However, this does not fully solve the race, as a new work item can still be scheduled *after* flush_work() completes but before the gadget's memory is freed, leading to the same use-after-free.  This patch fixes the race condition robustly by introducing a 'teardown' flag and a 'state_lock' spinlock to the usb_gadget struct. The flag is set during cleanup in usb_del_gadget() *before* calling flush_work() to prevent any new work from being scheduled once cleanup has commenced. The scheduling site, usb_gadget_set_state(), now checks this flag under the lock before queueing the work, thus safely closing the race window.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-22022",
                        "url": "https://ubuntu.com/security/CVE-2025-22022",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: xhci: Apply the link chain quirk on NEC isoc endpoints  Two clearly different specimens of NEC uPD720200 (one with start/stop bug, one without) were seen to cause IOMMU faults after some Missed Service Errors. Faulting address is immediately after a transfer ring segment and patched dynamic debug messages revealed that the MSE was received when waiting for a TD near the end of that segment:  [ 1.041954] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ffa08fe0 [ 1.042120] xhci_hcd: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0005 address=0xffa09000 flags=0x0000] [ 1.042146] xhci_hcd: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0005 address=0xffa09040 flags=0x0000]  It gets even funnier if the next page is a ring segment accessible to the HC. Below, it reports MSE in segment at ff1e8000, plows through a zero-filled page at ff1e9000 and starts reporting events for TRBs in page at ff1ea000 every microframe, instead of jumping to seg ff1e6000.  [ 7.041671] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ff1e8fe0 [ 7.041999] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ff1e8fe0 [ 7.042011] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042028] xhci_hcd: All TDs skipped for slot 1 ep 2. Clear skip flag. [ 7.042134] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042138] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 31 [ 7.042144] xhci_hcd: Looking for event-dma 00000000ff1ea040 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.042259] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042262] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 31 [ 7.042266] xhci_hcd: Looking for event-dma 00000000ff1ea050 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820  At some point completion events change from Isoch Buffer Overrun to Short Packet and the HC finally finds cycle bit mismatch in ff1ec000.  [ 7.098130] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 [ 7.098132] xhci_hcd: Looking for event-dma 00000000ff1ecc50 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.098254] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 [ 7.098256] xhci_hcd: Looking for event-dma 00000000ff1ecc60 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.098379] xhci_hcd: Overrun event on slot 1 ep 2  It's possible that data from the isochronous device were written to random buffers of pending TDs on other endpoints (either IN or OUT), other devices or even other HCs in the same IOMMU domain.  Lastly, an error from a different USB device on another HC. Was it caused by the above? I don't know, but it may have been. The disk was working without any other issues and generated PCIe traffic to starve the NEC of upstream BW and trigger those MSEs. The two HCs shared one x1 slot by means of a commercial \"PCIe splitter\" board.  [ 7.162604] usb 10-2: reset SuperSpeed USB device number 3 using xhci_hcd [ 7.178990] sd 9:0:0:0: [sdb] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x07 driverbyte=DRIVER_OK cmd_age=0s [ 7.179001] sd 9:0:0:0: [sdb] tag#0 CDB: opcode=0x28 28 00 04 02 ae 00 00 02 00 00 [ 7.179004] I/O error, dev sdb, sector 67284480 op 0x0:(READ) flags 0x80700 phys_seg 5 prio class 0  Fortunately, it appears that this ridiculous bug is avoided by setting the chain bit of Link TRBs on isochronous rings. Other ancient HCs are known which also expect the bit to be set and they ignore Link TRBs if it's not. Reportedly, 0.95 spec guaranteed that the bit is set.  The bandwidth-starved NEC HC running a 32KB/uframe UVC endpoint reports tens of MSEs per second and runs into the bug within seconds. Chaining Link TRBs allows the same workload to run for many minutes, many times.  No ne ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40110",
                        "url": "https://ubuntu.com/security/CVE-2025-40110",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vmwgfx: Fix a null-ptr access in the cursor snooper  Check that the resource which is converted to a surface exists before trying to use the cursor snooper on it.  vmw_cmd_res_check allows explicit invalid (SVGA3D_INVALID_ID) identifiers because some svga commands accept SVGA3D_INVALID_ID to mean \"no surface\", unfortunately functions that accept the actual surfaces as objects might (and in case of the cursor snooper, do not) be able to handle null objects. Make sure that we validate not only the identifier (via the vmw_cmd_res_check) but also check that the actual resource exists before trying to do something with it.  Fixes unchecked null-ptr reference in the snooping code.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-12 02:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38022",
                        "url": "https://ubuntu.com/security/CVE-2025-38022",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/core: Fix \"KASAN: slab-use-after-free Read in ib_register_device\" problem  Call Trace:   __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:408 [inline]  print_report+0xc3/0x670 mm/kasan/report.c:521  kasan_report+0xe0/0x110 mm/kasan/report.c:634  strlen+0x93/0xa0 lib/string.c:420  __fortify_strlen include/linux/fortify-string.h:268 [inline]  get_kobj_path_length lib/kobject.c:118 [inline]  kobject_get_path+0x3f/0x2a0 lib/kobject.c:158  kobject_uevent_env+0x289/0x1870 lib/kobject_uevent.c:545  ib_register_device drivers/infiniband/core/device.c:1472 [inline]  ib_register_device+0x8cf/0xe00 drivers/infiniband/core/device.c:1393  rxe_register_device+0x275/0x320 drivers/infiniband/sw/rxe/rxe_verbs.c:1552  rxe_net_add+0x8e/0xe0 drivers/infiniband/sw/rxe/rxe_net.c:550  rxe_newlink+0x70/0x190 drivers/infiniband/sw/rxe/rxe.c:225  nldev_newlink+0x3a3/0x680 drivers/infiniband/core/nldev.c:1796  rdma_nl_rcv_msg+0x387/0x6e0 drivers/infiniband/core/netlink.c:195  rdma_nl_rcv_skb.constprop.0.isra.0+0x2e5/0x450  netlink_unicast_kernel net/netlink/af_netlink.c:1313 [inline]  netlink_unicast+0x53a/0x7f0 net/netlink/af_netlink.c:1339  netlink_sendmsg+0x8d1/0xdd0 net/netlink/af_netlink.c:1883  sock_sendmsg_nosec net/socket.c:712 [inline]  __sock_sendmsg net/socket.c:727 [inline]  ____sys_sendmsg+0xa95/0xc70 net/socket.c:2566  ___sys_sendmsg+0x134/0x1d0 net/socket.c:2620  __sys_sendmsg+0x16d/0x220 net/socket.c:2652  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xcd/0x260 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  This problem is similar to the problem that the commit 1d6a9e7449e2 (\"RDMA/core: Fix use-after-free when rename device name\") fixes.  The root cause is: the function ib_device_rename() renames the name with lock. But in the function kobject_uevent(), this name is accessed without lock protection at the same time.  The solution is to add the lock protection when this name is accessed in the function kobject_uevent().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-06-18 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71083",
                        "url": "https://ubuntu.com/security/CVE-2025-71083",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/ttm: Avoid NULL pointer deref for evicted BOs  It is possible for a BO to exist that is not currently associated with a resource, e.g. because it has been evicted.  When devcoredump tries to read the contents of all BOs for dumping, we need to expect this as well -- in this case, ENODATA is recorded instead of the buffer contents.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71079",
                        "url": "https://ubuntu.com/security/CVE-2025-71079",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: nfc: fix deadlock between nfc_unregister_device and rfkill_fop_write  A deadlock can occur between nfc_unregister_device() and rfkill_fop_write() due to lock ordering inversion between device_lock and rfkill_global_mutex.  The problematic lock order is:  Thread A (rfkill_fop_write):   rfkill_fop_write()     mutex_lock(&rfkill_global_mutex)       rfkill_set_block()         nfc_rfkill_set_block()           nfc_dev_down()             device_lock(&dev->dev)    <- waits for device_lock  Thread B (nfc_unregister_device):   nfc_unregister_device()     device_lock(&dev->dev)       rfkill_unregister()         mutex_lock(&rfkill_global_mutex)  <- waits for rfkill_global_mutex  This creates a classic ABBA deadlock scenario.  Fix this by moving rfkill_unregister() and rfkill_destroy() outside the device_lock critical section. Store the rfkill pointer in a local variable before releasing the lock, then call rfkill_unregister() after releasing device_lock.  This change is safe because rfkill_fop_write() holds rfkill_global_mutex while calling the rfkill callbacks, and rfkill_unregister() also acquires rfkill_global_mutex before cleanup. Therefore, rfkill_unregister() will wait for any ongoing callback to complete before proceeding, and device_del() is only called after rfkill_unregister() returns, preventing any use-after-free.  The similar lock ordering in nfc_register_device() (device_lock -> rfkill_global_mutex via rfkill_register) is safe because during registration the device is not yet in rfkill_list, so no concurrent rfkill operations can occur on this device.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71093",
                        "url": "https://ubuntu.com/security/CVE-2025-71093",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  e1000: fix OOB in e1000_tbi_should_accept()  In e1000_tbi_should_accept() we read the last byte of the frame via 'data[length - 1]' to evaluate the TBI workaround. If the descriptor- reported length is zero or larger than the actual RX buffer size, this read goes out of bounds and can hit unrelated slab objects. The issue is observed from the NAPI receive path (e1000_clean_rx_irq):  ================================================================== BUG: KASAN: slab-out-of-bounds in e1000_tbi_should_accept+0x610/0x790 Read of size 1 at addr ffff888014114e54 by task sshd/363  CPU: 0 PID: 363 Comm: sshd Not tainted 5.18.0-rc1 #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014 Call Trace:  <IRQ>  dump_stack_lvl+0x5a/0x74  print_address_description+0x7b/0x440  print_report+0x101/0x200  kasan_report+0xc1/0xf0  e1000_tbi_should_accept+0x610/0x790  e1000_clean_rx_irq+0xa8c/0x1110  e1000_clean+0xde2/0x3c10  __napi_poll+0x98/0x380  net_rx_action+0x491/0xa20  __do_softirq+0x2c9/0x61d  do_softirq+0xd1/0x120  </IRQ>  <TASK>  __local_bh_enable_ip+0xfe/0x130  ip_finish_output2+0x7d5/0xb00  __ip_queue_xmit+0xe24/0x1ab0  __tcp_transmit_skb+0x1bcb/0x3340  tcp_write_xmit+0x175d/0x6bd0  __tcp_push_pending_frames+0x7b/0x280  tcp_sendmsg_locked+0x2e4f/0x32d0  tcp_sendmsg+0x24/0x40  sock_write_iter+0x322/0x430  vfs_write+0x56c/0xa60  ksys_write+0xd1/0x190  do_syscall_64+0x43/0x90  entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f511b476b10 Code: 73 01 c3 48 8b 0d 88 d3 2b 00 f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 83 3d f9 2b 2c 00 00 75 10 b8 01 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 31 c3 48 83 ec 08 e8 8e 9b 01 00 48 89 04 24 RSP: 002b:00007ffc9211d4e8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 0000000000004024 RCX: 00007f511b476b10 RDX: 0000000000004024 RSI: 0000559a9385962c RDI: 0000000000000003 RBP: 0000559a9383a400 R08: fffffffffffffff0 R09: 0000000000004f00 R10: 0000000000000070 R11: 0000000000000246 R12: 0000000000000000 R13: 00007ffc9211d57f R14: 0000559a9347bde7 R15: 0000000000000003  </TASK> Allocated by task 1:  __kasan_krealloc+0x131/0x1c0  krealloc+0x90/0xc0  add_sysfs_param+0xcb/0x8a0  kernel_add_sysfs_param+0x81/0xd4  param_sysfs_builtin+0x138/0x1a6  param_sysfs_init+0x57/0x5b  do_one_initcall+0x104/0x250  do_initcall_level+0x102/0x132  do_initcalls+0x46/0x74  kernel_init_freeable+0x28f/0x393  kernel_init+0x14/0x1a0  ret_from_fork+0x22/0x30 The buggy address belongs to the object at ffff888014114000  which belongs to the cache kmalloc-2k of size 2048 The buggy address is located 1620 bytes to the right of  2048-byte region [ffff888014114000, ffff888014114800] The buggy address belongs to the physical page: page:ffffea0000504400 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x14110 head:ffffea0000504400 order:3 compound_mapcount:0 compound_pincount:0 flags: 0x100000000010200(slab|head|node=0|zone=1) raw: 0100000000010200 0000000000000000 dead000000000001 ffff888013442000 raw: 0000000000000000 0000000000080008 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected ==================================================================  This happens because the TBI check unconditionally dereferences the last byte without validating the reported length first:  \tu8 last_byte = *(data + length - 1);  Fix by rejecting the frame early if the length is zero, or if it exceeds adapter->rx_buffer_len. This preserves the TBI workaround semantics for valid frames and prevents touching memory beyond the RX buffer.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71084",
                        "url": "https://ubuntu.com/security/CVE-2025-71084",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/cm: Fix leaking the multicast GID table reference  If the CM ID is destroyed while the CM event for multicast creating is still queued the cancel_work_sync() will prevent the work from running which also prevents destroying the ah_attr. This leaks a refcount and triggers a WARN:     GID entry ref leak for dev syz1 index 2 ref=573    WARNING: CPU: 1 PID: 655 at drivers/infiniband/core/cache.c:809 release_gid_table drivers/infiniband/core/cache.c:806 [inline]    WARNING: CPU: 1 PID: 655 at drivers/infiniband/core/cache.c:809 gid_table_release_one+0x284/0x3cc drivers/infiniband/core/cache.c:886  Destroy the ah_attr after canceling the work, it is safe to call this twice.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71096",
                        "url": "https://ubuntu.com/security/CVE-2025-71096",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly  The netlink response for RDMA_NL_LS_OP_IP_RESOLVE should always have a LS_NLA_TYPE_DGID attribute, it is invalid if it does not.  Use the nl parsing logic properly and call nla_parse_deprecated() to fill the nlattrs array and then directly index that array to get the data for the DGID. Just fail if it is NULL.  Remove the for loop searching for the nla, and squash the validation and parsing into one function.  Fixes an uninitialized read from the stack triggered by userspace if it does not provide the DGID to a kernel initiated RDMA_NL_LS_OP_IP_RESOLVE query.      BUG: KMSAN: uninit-value in hex_byte_pack include/linux/hex.h:13 [inline]     BUG: KMSAN: uninit-value in ip6_string+0xef4/0x13a0 lib/vsprintf.c:1490      hex_byte_pack include/linux/hex.h:13 [inline]      ip6_string+0xef4/0x13a0 lib/vsprintf.c:1490      ip6_addr_string+0x18a/0x3e0 lib/vsprintf.c:1509      ip_addr_string+0x245/0xee0 lib/vsprintf.c:1633      pointer+0xc09/0x1bd0 lib/vsprintf.c:2542      vsnprintf+0xf8a/0x1bd0 lib/vsprintf.c:2930      vprintk_store+0x3ae/0x1530 kernel/printk/printk.c:2279      vprintk_emit+0x307/0xcd0 kernel/printk/printk.c:2426      vprintk_default+0x3f/0x50 kernel/printk/printk.c:2465      vprintk+0x36/0x50 kernel/printk/printk_safe.c:82      _printk+0x17e/0x1b0 kernel/printk/printk.c:2475      ib_nl_process_good_ip_rsep drivers/infiniband/core/addr.c:128 [inline]      ib_nl_handle_ip_res_resp+0x963/0x9d0 drivers/infiniband/core/addr.c:141      rdma_nl_rcv_msg drivers/infiniband/core/netlink.c:-1 [inline]      rdma_nl_rcv_skb drivers/infiniband/core/netlink.c:239 [inline]      rdma_nl_rcv+0xefa/0x11c0 drivers/infiniband/core/netlink.c:259      netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]      netlink_unicast+0xf04/0x12b0 net/netlink/af_netlink.c:1346      netlink_sendmsg+0x10b3/0x1250 net/netlink/af_netlink.c:1896      sock_sendmsg_nosec net/socket.c:714 [inline]      __sock_sendmsg+0x333/0x3d0 net/socket.c:729      ____sys_sendmsg+0x7e0/0xd80 net/socket.c:2617      ___sys_sendmsg+0x271/0x3b0 net/socket.c:2671      __sys_sendmsg+0x1aa/0x300 net/socket.c:2703      __compat_sys_sendmsg net/compat.c:346 [inline]      __do_compat_sys_sendmsg net/compat.c:353 [inline]      __se_compat_sys_sendmsg net/compat.c:350 [inline]      __ia32_compat_sys_sendmsg+0xa4/0x100 net/compat.c:350      ia32_sys_call+0x3f6c/0x4310 arch/x86/include/generated/asm/syscalls_32.h:371      do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]      __do_fast_syscall_32+0xb0/0x150 arch/x86/entry/syscall_32.c:306      do_fast_syscall_32+0x38/0x80 arch/x86/entry/syscall_32.c:331      do_SYSENTER_32+0x1f/0x30 arch/x86/entry/syscall_32.c:3",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71136",
                        "url": "https://ubuntu.com/security/CVE-2025-71136",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: adv7842: Avoid possible out-of-bounds array accesses in adv7842_cp_log_status()  It's possible for cp_read() and hdmi_read() to return -EIO. Those values are further used as indexes for accessing arrays.  Fix that by checking return values where it's needed.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71133",
                        "url": "https://ubuntu.com/security/CVE-2025-71133",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/irdma: avoid invalid read in irdma_net_event  irdma_net_event() should not dereference anything from \"neigh\" (alias \"ptr\") until it has checked that the event is NETEVENT_NEIGH_UPDATE. Other events come with different structures pointed to by \"ptr\" and they may be smaller than struct neighbour.  Move the read of neigh->dev under the NETEVENT_NEIGH_UPDATE case.  The bug is mostly harmless, but it triggers KASAN on debug kernels:   BUG: KASAN: stack-out-of-bounds in irdma_net_event+0x32e/0x3b0 [irdma]  Read of size 8 at addr ffffc900075e07f0 by task kworker/27:2/542554   CPU: 27 PID: 542554 Comm: kworker/27:2 Kdump: loaded Not tainted 5.14.0-630.el9.x86_64+debug #1  Hardware name: [...]  Workqueue: events rt6_probe_deferred  Call Trace:   <IRQ>   dump_stack_lvl+0x60/0xb0   print_address_description.constprop.0+0x2c/0x3f0   print_report+0xb4/0x270   kasan_report+0x92/0xc0   irdma_net_event+0x32e/0x3b0 [irdma]   notifier_call_chain+0x9e/0x180   atomic_notifier_call_chain+0x5c/0x110   rt6_do_redirect+0xb91/0x1080   tcp_v6_err+0xe9b/0x13e0   icmpv6_notify+0x2b2/0x630   ndisc_redirect_rcv+0x328/0x530   icmpv6_rcv+0xc16/0x1360   ip6_protocol_deliver_rcu+0xb84/0x12e0   ip6_input_finish+0x117/0x240   ip6_input+0xc4/0x370   ipv6_rcv+0x420/0x7d0   __netif_receive_skb_one_core+0x118/0x1b0   process_backlog+0xd1/0x5d0   __napi_poll.constprop.0+0xa3/0x440   net_rx_action+0x78a/0xba0   handle_softirqs+0x2d4/0x9c0   do_softirq+0xad/0xe0   </IRQ>",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71086",
                        "url": "https://ubuntu.com/security/CVE-2025-71086",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: rose: fix invalid array index in rose_kill_by_device()  rose_kill_by_device() collects sockets into a local array[] and then iterates over them to disconnect sockets bound to a device being brought down.  The loop mistakenly indexes array[cnt] instead of array[i]. For cnt < ARRAY_SIZE(array), this reads an uninitialized entry; for cnt == ARRAY_SIZE(array), it is an out-of-bounds read. Either case can lead to an invalid socket pointer dereference and also leaks references taken via sock_hold().  Fix the index to use i.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71097",
                        "url": "https://ubuntu.com/security/CVE-2025-71097",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: Fix reference count leak when using error routes with nexthop objects  When a nexthop object is deleted, it is marked as dead and then fib_table_flush() is called to flush all the routes that are using the dead nexthop.  The current logic in fib_table_flush() is to only flush error routes (e.g., blackhole) when it is called as part of network namespace dismantle (i.e., with flush_all=true). Therefore, error routes are not flushed when their nexthop object is deleted:   # ip link add name dummy1 up type dummy  # ip nexthop add id 1 dev dummy1  # ip route add 198.51.100.1/32 nhid 1  # ip route add blackhole 198.51.100.2/32 nhid 1  # ip nexthop del id 1  # ip route show  blackhole 198.51.100.2 nhid 1 dev dummy1  As such, they keep holding a reference on the nexthop object which in turn holds a reference on the nexthop device, resulting in a reference count leak:   # ip link del dev dummy1  [   70.516258] unregister_netdevice: waiting for dummy1 to become free. Usage count = 2  Fix by flushing error routes when their nexthop is marked as dead.  IPv6 does not suffer from this problem.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71085",
                        "url": "https://ubuntu.com/security/CVE-2025-71085",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()  There exists a kernel oops caused by a BUG_ON(nhead < 0) at net/core/skbuff.c:2232 in pskb_expand_head(). This bug is triggered as part of the calipso_skbuff_setattr() routine when skb_cow() is passed headroom > INT_MAX (i.e. (int)(skb_headroom(skb) + len_delta) < 0).  The root cause of the bug is due to an implicit integer cast in __skb_cow(). The check (headroom > skb_headroom(skb)) is meant to ensure that delta = headroom - skb_headroom(skb) is never negative, otherwise we will trigger a BUG_ON in pskb_expand_head(). However, if headroom > INT_MAX and delta <= -NET_SKB_PAD, the check passes, delta becomes negative, and pskb_expand_head() is passed a negative value for nhead.  Fix the trigger condition in calipso_skbuff_setattr(). Avoid passing \"negative\" headroom sizes to skb_cow() within calipso_skbuff_setattr() by only using skb_cow() to grow headroom.  PoC: \tUsing `netlabelctl` tool:          netlabelctl map del default         netlabelctl calipso add pass doi:7         netlabelctl map add default address:0::1/128 protocol:calipso,7          Then run the following PoC:          int fd = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);          // setup msghdr         int cmsg_size = 2;         int cmsg_len = 0x60;         struct msghdr msg;         struct sockaddr_in6 dest_addr;         struct cmsghdr * cmsg = (struct cmsghdr *) calloc(1,                         sizeof(struct cmsghdr) + cmsg_len);         msg.msg_name = &dest_addr;         msg.msg_namelen = sizeof(dest_addr);         msg.msg_iov = NULL;         msg.msg_iovlen = 0;         msg.msg_control = cmsg;         msg.msg_controllen = cmsg_len;         msg.msg_flags = 0;          // setup sockaddr         dest_addr.sin6_family = AF_INET6;         dest_addr.sin6_port = htons(31337);         dest_addr.sin6_flowinfo = htonl(31337);         dest_addr.sin6_addr = in6addr_loopback;         dest_addr.sin6_scope_id = 31337;          // setup cmsghdr         cmsg->cmsg_len = cmsg_len;         cmsg->cmsg_level = IPPROTO_IPV6;         cmsg->cmsg_type = IPV6_HOPOPTS;         char * hop_hdr = (char *)cmsg + sizeof(struct cmsghdr);         hop_hdr[1] = 0x9; //set hop size - (0x9 + 1) * 8 = 80          sendmsg(fd, &msg, 0);",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71137",
                        "url": "https://ubuntu.com/security/CVE-2025-71137",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  octeontx2-pf: fix \"UBSAN: shift-out-of-bounds error\"  This patch ensures that the RX ring size (rx_pending) is not set below the permitted length. This avoids UBSAN shift-out-of-bounds errors when users passes small or zero ring sizes via ethtool -G.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71094",
                        "url": "https://ubuntu.com/security/CVE-2025-71094",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: asix: validate PHY address before use  The ASIX driver reads the PHY address from the USB device via asix_read_phy_addr(). A malicious or faulty device can return an invalid address (>= PHY_MAX_ADDR), which causes a warning in mdiobus_get_phy():    addr 207 out of range   WARNING: drivers/net/phy/mdio_bus.c:76  Validate the PHY address in asix_read_phy_addr() and remove the now-redundant check in ax88172a.c.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71132",
                        "url": "https://ubuntu.com/security/CVE-2025-71132",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smc91x: fix broken irq-context in PREEMPT_RT  When smc91x.c is built with PREEMPT_RT, the following splat occurs in FVP_RevC:  [   13.055000] smc91x LNRO0003:00 eth0: link up, 10Mbps, half-duplex, lpa 0x0000 [   13.062137] BUG: workqueue leaked atomic, lock or RCU: kworker/2:1[106] [   13.062137]      preempt=0x00000000 lock=0->0 RCU=0->1 workfn=mld_ifc_work [   13.062266] C ** replaying previous printk message ** [   13.062266] CPU: 2 UID: 0 PID: 106 Comm: kworker/2:1 Not tainted 6.18.0-dirty #179 PREEMPT_{RT,(full)} [   13.062353] Hardware name:  , BIOS [   13.062382] Workqueue: mld mld_ifc_work [   13.062469] Call trace: [   13.062494]  show_stack+0x24/0x40 (C) [   13.062602]  __dump_stack+0x28/0x48 [   13.062710]  dump_stack_lvl+0x7c/0xb0 [   13.062818]  dump_stack+0x18/0x34 [   13.062926]  process_scheduled_works+0x294/0x450 [   13.063043]  worker_thread+0x260/0x3d8 [   13.063124]  kthread+0x1c4/0x228 [   13.063235]  ret_from_fork+0x10/0x20  This happens because smc_special_trylock() disables IRQs even on PREEMPT_RT, but smc_special_unlock() does not restore IRQs on PREEMPT_RT. The reason is that smc_special_unlock() calls spin_unlock_irqrestore(), and rcu_read_unlock_bh() in __dev_queue_xmit() cannot invoke rcu_read_unlock() through __local_bh_enable_ip() when current->softirq_disable_cnt becomes zero.  To address this issue, replace smc_special_trylock() with spin_trylock_irqsave().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71154",
                        "url": "https://ubuntu.com/security/CVE-2025-71154",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: rtl8150: fix memory leak on usb_submit_urb() failure  In async_set_registers(), when usb_submit_urb() fails, the allocated   async_req structure and URB are not freed, causing a memory leak.    The completion callback async_set_reg_cb() is responsible for freeing   these allocations, but it is only called after the URB is successfully   submitted and completes (successfully or with error). If submission   fails, the callback never runs and the memory is leaked.    Fix this by freeing both the URB and the request structure in the error   path when usb_submit_urb() fails.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71091",
                        "url": "https://ubuntu.com/security/CVE-2025-71091",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  team: fix check for port enabled in team_queue_override_port_prio_changed()  There has been a syzkaller bug reported recently with the following trace:  list_del corruption, ffff888058bea080->prev is LIST_POISON2 (dead000000000122) ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:59! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 3 UID: 0 PID: 21246 Comm: syz.0.2928 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:__list_del_entry_valid_or_report+0x13e/0x200 lib/list_debug.c:59 Code: 48 c7 c7 e0 71 f0 8b e8 30 08 ef fc 90 0f 0b 48 89 ef e8 a5 02 55 fd 48 89 ea 48 89 de 48 c7 c7 40 72 f0 8b e8 13 08 ef fc 90 <0f> 0b 48 89 ef e8 88 02 55 fd 48 89 ea 48 b8 00 00 00 00 00 fc ff RSP: 0018:ffffc9000d49f370 EFLAGS: 00010286 RAX: 000000000000004e RBX: ffff888058bea080 RCX: ffffc9002817d000 RDX: 0000000000000000 RSI: ffffffff819becc6 RDI: 0000000000000005 RBP: dead000000000122 R08: 0000000000000005 R09: 0000000000000000 R10: 0000000080000000 R11: 0000000000000001 R12: ffff888039e9c230 R13: ffff888058bea088 R14: ffff888058bea080 R15: ffff888055461480 FS:  00007fbbcfe6f6c0(0000) GS:ffff8880d6d0a000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000110c3afcb0 CR3: 00000000382c7000 CR4: 0000000000352ef0 Call Trace:  <TASK>  __list_del_entry_valid include/linux/list.h:132 [inline]  __list_del_entry include/linux/list.h:223 [inline]  list_del_rcu include/linux/rculist.h:178 [inline]  __team_queue_override_port_del drivers/net/team/team_core.c:826 [inline]  __team_queue_override_port_del drivers/net/team/team_core.c:821 [inline]  team_queue_override_port_prio_changed drivers/net/team/team_core.c:883 [inline]  team_priority_option_set+0x171/0x2f0 drivers/net/team/team_core.c:1534  team_option_set drivers/net/team/team_core.c:376 [inline]  team_nl_options_set_doit+0x8ae/0xe60 drivers/net/team/team_core.c:2653  genl_family_rcv_msg_doit+0x209/0x2f0 net/netlink/genetlink.c:1115  genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]  genl_rcv_msg+0x55c/0x800 net/netlink/genetlink.c:1210  netlink_rcv_skb+0x158/0x420 net/netlink/af_netlink.c:2552  genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219  netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]  netlink_unicast+0x5aa/0x870 net/netlink/af_netlink.c:1346  netlink_sendmsg+0x8c8/0xdd0 net/netlink/af_netlink.c:1896  sock_sendmsg_nosec net/socket.c:727 [inline]  __sock_sendmsg net/socket.c:742 [inline]  ____sys_sendmsg+0xa98/0xc70 net/socket.c:2630  ___sys_sendmsg+0x134/0x1d0 net/socket.c:2684  __sys_sendmsg+0x16d/0x220 net/socket.c:2716  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xcd/0xfa0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  The problem is in this flow: 1) Port is enabled, queue_id != 0, in qom_list 2) Port gets disabled         -> team_port_disable()         -> team_queue_override_port_del()         -> del (removed from list) 3) Port is disabled, queue_id != 0, not in any list 4) Priority changes         -> team_queue_override_port_prio_changed()         -> checks: port disabled && queue_id != 0         -> calls del - hits the BUG as it is removed already  To fix this, change the check in team_queue_override_port_prio_changed() so it returns early if port is not enabled.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71098",
                        "url": "https://ubuntu.com/security/CVE-2025-71098",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ip6_gre: make ip6gre_header() robust  Over the years, syzbot found many ways to crash the kernel in ip6gre_header() [1].  This involves team or bonding drivers ability to dynamically change their dev->needed_headroom and/or dev->hard_header_len  In this particular crash mld_newpack() allocated an skb with a too small reserve/headroom, and by the time mld_sendpack() was called, syzbot managed to attach an ip6gre device.  [1] skbuff: skb_under_panic: text:ffffffff8a1d69a8 len:136 put:40 head:ffff888059bc7000 data:ffff888059bc6fe8 tail:0x70 end:0x6c0 dev:team0 ------------[ cut here ]------------  kernel BUG at net/core/skbuff.c:213 !  <TASK>   skb_under_panic net/core/skbuff.c:223 [inline]   skb_push+0xc3/0xe0 net/core/skbuff.c:2641   ip6gre_header+0xc8/0x790 net/ipv6/ip6_gre.c:1371   dev_hard_header include/linux/netdevice.h:3436 [inline]   neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618   neigh_output include/net/neighbour.h:556 [inline]   ip6_finish_output2+0xfb3/0x1480 net/ipv6/ip6_output.c:136  __ip6_finish_output net/ipv6/ip6_output.c:-1 [inline]   ip6_finish_output+0x234/0x7d0 net/ipv6/ip6_output.c:220   NF_HOOK_COND include/linux/netfilter.h:307 [inline]   ip6_output+0x340/0x550 net/ipv6/ip6_output.c:247   NF_HOOK+0x9e/0x380 include/linux/netfilter.h:318   mld_sendpack+0x8d4/0xe60 net/ipv6/mcast.c:1855   mld_send_cr net/ipv6/mcast.c:2154 [inline]   mld_ifc_work+0x83e/0xd60 net/ipv6/mcast.c:2693",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71082",
                        "url": "https://ubuntu.com/security/CVE-2025-71082",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: btusb: revert use of devm_kzalloc in btusb  This reverts commit 98921dbd00c4e (\"Bluetooth: Use devm_kzalloc in btusb.c file\").  In btusb_probe(), we use devm_kzalloc() to allocate the btusb data. This ties the lifetime of all the btusb data to the binding of a driver to one interface, INTF. In a driver that binds to other interfaces, ISOC and DIAG, this is an accident waiting to happen.  The issue is revealed in btusb_disconnect(), where calling usb_driver_release_interface(&btusb_driver, data->intf) will have devm free the data that is also being used by the other interfaces of the driver that may not be released yet.  To fix this, revert the use of devm and go back to freeing memory explicitly.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71131",
                        "url": "https://ubuntu.com/security/CVE-2025-71131",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: seqiv - Do not use req->iv after crypto_aead_encrypt  As soon as crypto_aead_encrypt is called, the underlying request may be freed by an asynchronous completion.  Thus dereferencing req->iv after it returns is invalid.  Instead of checking req->iv against info, create a new variable unaligned_info and use it for that purpose instead.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71087",
                        "url": "https://ubuntu.com/security/CVE-2025-71087",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iavf: fix off-by-one issues in iavf_config_rss_reg()  There are off-by-one bugs when configuring RSS hash key and lookup table, causing out-of-bounds reads to memory [1] and out-of-bounds writes to device registers.  Before commit 43a3d9ba34c9 (\"i40evf: Allow PF driver to configure RSS\"), the loop upper bounds were:     i <= I40E_VFQF_{HKEY,HLUT}_MAX_INDEX which is safe since the value is the last valid index.  That commit changed the bounds to:     i <= adapter->rss_{key,lut}_size / 4 where `rss_{key,lut}_size / 4` is the number of dwords, so the last valid index is `(rss_{key,lut}_size / 4) - 1`. Therefore, using `<=` accesses one element past the end.  Fix the issues by using `<` instead of `<=`, ensuring we do not exceed the bounds.  [1] KASAN splat about rss_key_size off-by-one   BUG: KASAN: slab-out-of-bounds in iavf_config_rss+0x619/0x800   Read of size 4 at addr ffff888102c50134 by task kworker/u8:6/63    CPU: 0 UID: 0 PID: 63 Comm: kworker/u8:6 Not tainted 6.18.0-rc2-enjuk-tnguy-00378-g3005f5b77652-dirty #156 PREEMPT(voluntary)   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014   Workqueue: iavf iavf_watchdog_task   Call Trace:    <TASK>    dump_stack_lvl+0x6f/0xb0    print_report+0x170/0x4f3    kasan_report+0xe1/0x1a0    iavf_config_rss+0x619/0x800    iavf_watchdog_task+0x2be7/0x3230    process_one_work+0x7fd/0x1420    worker_thread+0x4d1/0xd40    kthread+0x344/0x660    ret_from_fork+0x249/0x320    ret_from_fork_asm+0x1a/0x30    </TASK>    Allocated by task 63:    kasan_save_stack+0x30/0x50    kasan_save_track+0x14/0x30    __kasan_kmalloc+0x7f/0x90    __kmalloc_noprof+0x246/0x6f0    iavf_watchdog_task+0x28fc/0x3230    process_one_work+0x7fd/0x1420    worker_thread+0x4d1/0xd40    kthread+0x344/0x660    ret_from_fork+0x249/0x320    ret_from_fork_asm+0x1a/0x30    The buggy address belongs to the object at ffff888102c50100    which belongs to the cache kmalloc-64 of size 64   The buggy address is located 0 bytes to the right of    allocated 52-byte region [ffff888102c50100, ffff888102c50134)    The buggy address belongs to the physical page:   page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x102c50   flags: 0x200000000000000(node=0|zone=2)   page_type: f5(slab)   raw: 0200000000000000 ffff8881000418c0 dead000000000122 0000000000000000   raw: 0000000000000000 0000000080200020 00000000f5000000 0000000000000000   page dumped because: kasan: bad access detected    Memory state around the buggy address:    ffff888102c50000: 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc fc    ffff888102c50080: 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc fc   >ffff888102c50100: 00 00 00 00 00 00 04 fc fc fc fc fc fc fc fc fc                                        ^    ffff888102c50180: 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc    ffff888102c50200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71111",
                        "url": "https://ubuntu.com/security/CVE-2025-71111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hwmon: (w83791d) Convert macros to functions to avoid TOCTOU  The macro FAN_FROM_REG evaluates its arguments multiple times. When used in lockless contexts involving shared driver data, this leads to Time-of-Check to Time-of-Use (TOCTOU) race conditions, potentially causing divide-by-zero errors.  Convert the macro to a static function. This guarantees that arguments are evaluated only once (pass-by-value), preventing the race conditions.  Additionally, in store_fan_div, move the calculation of the minimum limit inside the update lock. This ensures that the read-modify-write sequence operates on consistent data.  Adhere to the principle of minimal changes by only converting macros that evaluate arguments multiple times and are used in lockless contexts.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68814",
                        "url": "https://ubuntu.com/security/CVE-2025-68814",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  io_uring: fix filename leak in __io_openat_prep()   __io_openat_prep() allocates a struct filename using getname(). However, for the condition of the file being installed in the fixed file table as well as having O_CLOEXEC flag set, the function returns early. At that point, the request doesn't have REQ_F_NEED_CLEANUP flag set. Due to this, the memory for the newly allocated struct filename is not cleaned up, causing a memory leak.  Fix this by setting the REQ_F_NEED_CLEANUP for the request just after the successful getname() call, so that when the request is torn down, the filename will be cleaned up, along with other resources needing cleanup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68788",
                        "url": "https://ubuntu.com/security/CVE-2025-68788",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fsnotify: do not generate ACCESS/MODIFY events on child for special files  inotify/fanotify do not allow users with no read access to a file to subscribe to events (e.g. IN_ACCESS/IN_MODIFY), but they do allow the same user to subscribe for watching events on children when the user has access to the parent directory (e.g. /dev).  Users with no read access to a file but with read access to its parent directory can still stat the file and see if it was accessed/modified via atime/mtime change.  The same is not true for special files (e.g. /dev/null). Users will not generally observe atime/mtime changes when other users read/write to special files, only when someone sets atime/mtime via utimensat().  Align fsnotify events with this stat behavior and do not generate ACCESS/MODIFY events to parent watchers on read/write of special files. The events are still generated to parent watchers on utimensat(). This closes some side-channels that could be possibly used for information exfiltration [1].  [1] https://snee.la/pdf/pubs/file-notification-attacks.pdf",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71125",
                        "url": "https://ubuntu.com/security/CVE-2025-71125",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tracing: Do not register unsupported perf events  Synthetic events currently do not have a function to register perf events. This leads to calling the tracepoint register functions with a NULL function pointer which triggers:   ------------[ cut here ]------------  WARNING: kernel/tracepoint.c:175 at tracepoint_add_func+0x357/0x370, CPU#2: perf/2272  Modules linked in: kvm_intel kvm irqbypass  CPU: 2 UID: 0 PID: 2272 Comm: perf Not tainted 6.18.0-ftest-11964-ge022764176fc-dirty #323 PREEMPTLAZY  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014  RIP: 0010:tracepoint_add_func+0x357/0x370  Code: 28 9c e8 4c 0b f5 ff eb 0f 4c 89 f7 48 c7 c6 80 4d 28 9c e8 ab 89 f4 ff 31 c0 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc cc cc cc cc <0f> 0b 49 c7 c6 ea ff ff ff e9 ee fe ff ff 0f 0b e9 f9 fe ff ff 0f  RSP: 0018:ffffabc0c44d3c40 EFLAGS: 00010246  RAX: 0000000000000001 RBX: ffff9380aa9e4060 RCX: 0000000000000000  RDX: 000000000000000a RSI: ffffffff9e1d4a98 RDI: ffff937fcf5fd6c8  RBP: 0000000000000001 R08: 0000000000000007 R09: ffff937fcf5fc780  R10: 0000000000000003 R11: ffffffff9c193910 R12: 000000000000000a  R13: ffffffff9e1e5888 R14: 0000000000000000 R15: ffffabc0c44d3c78  FS:  00007f6202f5f340(0000) GS:ffff93819f00f000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 000055d3162281a8 CR3: 0000000106a56003 CR4: 0000000000172ef0  Call Trace:   <TASK>   tracepoint_probe_register+0x5d/0x90   synth_event_reg+0x3c/0x60   perf_trace_event_init+0x204/0x340   perf_trace_init+0x85/0xd0   perf_tp_event_init+0x2e/0x50   perf_try_init_event+0x6f/0x230   ? perf_event_alloc+0x4bb/0xdc0   perf_event_alloc+0x65a/0xdc0   __se_sys_perf_event_open+0x290/0x9f0   do_syscall_64+0x93/0x7b0   ? entry_SYSCALL_64_after_hwframe+0x76/0x7e   ? trace_hardirqs_off+0x53/0xc0   entry_SYSCALL_64_after_hwframe+0x76/0x7e  Instead, have the code return -ENODEV, which doesn't warn and has perf error out with:   # perf record -e synthetic:futex_wait Error: The sys_perf_event_open() syscall returned with 19 (No such device) for event (synthetic:futex_wait). \"dmesg | grep -i perf\" may provide additional information.  Ideally perf should support synthetic events, but for now just fix the warning. The support can come later.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71104",
                        "url": "https://ubuntu.com/security/CVE-2025-71104",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV timer  When advancing the target expiration for the guest's APIC timer in periodic mode, set the expiration to \"now\" if the target expiration is in the past (similar to what is done in update_target_expiration()).  Blindly adding the period to the previous target expiration can result in KVM generating a practically unbounded number of hrtimer IRQs due to programming an expired timer over and over.  In extreme scenarios, e.g. if userspace pauses/suspends a VM for an extended duration, this can even cause hard lockups in the host.  Currently, the bug only affects Intel CPUs when using the hypervisor timer (HV timer), a.k.a. the VMX preemption timer.  Unlike the software timer, a.k.a. hrtimer, which KVM keeps running even on exits to userspace, the HV timer only runs while the guest is active.  As a result, if the vCPU does not run for an extended duration, there will be a huge gap between the target expiration and the current time the vCPU resumes running. Because the target expiration is incremented by only one period on each timer expiration, this leads to a series of timer expirations occurring rapidly after the vCPU/VM resumes.  More critically, when the vCPU first triggers a periodic HV timer expiration after resuming, advancing the expiration by only one period will result in a target expiration in the past.  As a result, the delta may be calculated as a negative value.  When the delta is converted into an absolute value (tscdeadline is an unsigned u64), the resulting value can overflow what the HV timer is capable of programming.  I.e. the large value will exceed the VMX Preemption Timer's maximum bit width of cpu_preemption_timer_multi + 32, and thus cause KVM to switch from the HV timer to the software timer (hrtimers).  After switching to the software timer, periodic timer expiration callbacks may be executed consecutively within a single clock interrupt handler, because hrtimers honors KVM's request for an expiration in the past and immediately re-invokes KVM's callback after reprogramming.  And because the interrupt handler runs with IRQs disabled, restarting KVM's hrtimer over and over until the target expiration is advanced to \"now\" can result in a hard lockup.  E.g. the following hard lockup was triggered in the host when running a Windows VM (only relevant because it used the APIC timer in periodic mode) after resuming the VM from a long suspend (in the host).    NMI watchdog: Watchdog detected hard LOCKUP on cpu 45   ...   RIP: 0010:advance_periodic_target_expiration+0x4d/0x80 [kvm]   ...   RSP: 0018:ff4f88f5d98d8ef0 EFLAGS: 00000046   RAX: fff0103f91be678e RBX: fff0103f91be678e RCX: 00843a7d9e127bcc   RDX: 0000000000000002 RSI: 0052ca4003697505 RDI: ff440d5bfbdbd500   RBP: ff440d5956f99200 R08: ff2ff2a42deb6a84 R09: 000000000002a6c0   R10: 0122d794016332b3 R11: 0000000000000000 R12: ff440db1af39cfc0   R13: ff440db1af39cfc0 R14: ffffffffc0d4a560 R15: ff440db1af39d0f8   FS:  00007f04a6ffd700(0000) GS:ff440db1af380000(0000) knlGS:000000e38a3b8000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 000000d5651feff8 CR3: 000000684e038002 CR4: 0000000000773ee0   PKRU: 55555554   Call Trace:    <IRQ>    apic_timer_fn+0x31/0x50 [kvm]    __hrtimer_run_queues+0x100/0x280    hrtimer_interrupt+0x100/0x210    ? ttwu_do_wakeup+0x19/0x160    smp_apic_timer_interrupt+0x6a/0x130    apic_timer_interrupt+0xf/0x20    </IRQ>  Moreover, if the suspend duration of the virtual machine is not long enough to trigger a hard lockup in this scenario, since commit 98c25ead5eda (\"KVM: VMX: Move preemption timer <=> hrtimer dance to common x86\"), KVM will continue using the software timer until the guest reprograms the APIC timer in some way.  Since the periodic timer does not require frequent APIC timer register programming, the guest may continue to use the software timer in ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71116",
                        "url": "https://ubuntu.com/security/CVE-2025-71116",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make decode_pool() more resilient against corrupted osdmaps  If the osdmap is (maliciously) corrupted such that the encoded length of ceph_pg_pool envelope is less than what is expected for a particular encoding version, out-of-bounds reads may ensue because the only bounds check that is there is based on that length value.  This patch adds explicit bounds checks for each field that is decoded or skipped.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71121",
                        "url": "https://ubuntu.com/security/CVE-2025-71121",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  parisc: Do not reprogram affinitiy on ASP chip  The ASP chip is a very old variant of the GSP chip and is used e.g. in HP 730 workstations. When trying to reprogram the affinity it will crash with a HPMC as the relevant registers don't seem to be at the usual location.  Let's avoid the crash by checking the sversion. Also note, that reprogramming isn't necessary either, as the HP730 is a just a single-CPU machine.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71102",
                        "url": "https://ubuntu.com/security/CVE-2025-71102",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scs: fix a wrong parameter in __scs_magic  __scs_magic() needs a 'void *' variable, but a 'struct task_struct *' is given.  'task_scs(tsk)' is the starting address of the task's shadow call stack, and '__scs_magic(task_scs(tsk))' is the end address of the task's shadow call stack.  Here should be '__scs_magic(task_scs(tsk))'.  The user-visible effect of this bug is that when CONFIG_DEBUG_STACK_USAGE is enabled, the shadow call stack usage checking function (scs_check_usage) would scan an incorrect memory range.  This could lead  1. **Inaccurate stack usage reporting**: The function would calculate    wrong usage statistics for the shadow call stack, potentially showing    incorrect value in kmsg.  2. **Potential kernel crash**: If the value of __scs_magic(tsk)is    greater than that of __scs_magic(task_scs(tsk)), the for loop may    access unmapped memory, potentially causing a kernel panic.  However,    this scenario is unlikely because task_struct is allocated via the slab    allocator (which typically returns lower addresses), while the shadow    call stack returned by task_scs(tsk) is allocated via vmalloc(which    typically returns higher addresses).  However, since this is purely a debugging feature (CONFIG_DEBUG_STACK_USAGE), normal production systems should be not unaffected.  The bug only impacts developers and testers who are actively debugging stack usage with this configuration enabled.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68804",
                        "url": "https://ubuntu.com/security/CVE-2025-68804",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/chrome: cros_ec_ishtp: Fix UAF after unbinding driver  After unbinding the driver, another kthread `cros_ec_console_log_work` is still accessing the device, resulting an UAF and crash.  The driver doesn't unregister the EC device in .remove() which should shutdown sub-devices synchronously.  Fix it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68771",
                        "url": "https://ubuntu.com/security/CVE-2025-68771",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ocfs2: fix kernel BUG in ocfs2_find_victim_chain  syzbot reported a kernel BUG in ocfs2_find_victim_chain() because the `cl_next_free_rec` field of the allocation chain list (next free slot in the chain list) is 0, triggring the BUG_ON(!cl->cl_next_free_rec) condition in ocfs2_find_victim_chain() and panicking the kernel.  To fix this, an if condition is introduced in ocfs2_claim_suballoc_bits(), just before calling ocfs2_find_victim_chain(), the code block in it being executed when either of the following conditions is true:  1. `cl_next_free_rec` is equal to 0, indicating that there are no free chains in the allocation chain list 2. `cl_next_free_rec` is greater than `cl_count` (the total number of chains in the allocation chain list)  Either of them being true is indicative of the fact that there are no chains left for usage.  This is addressed using ocfs2_error(), which prints the error log for debugging purposes, rather than panicking the kernel.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68808",
                        "url": "https://ubuntu.com/security/CVE-2025-68808",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: vidtv: initialize local pointers upon transfer of memory ownership  vidtv_channel_si_init() creates a temporary list (program, service, event) and ownership of the memory itself is transferred to the PAT/SDT/EIT tables through vidtv_psi_pat_program_assign(), vidtv_psi_sdt_service_assign(), vidtv_psi_eit_event_assign().  The problem here is that the local pointer where the memory ownership transfer was completed is not initialized to NULL. This causes the vidtv_psi_pmt_create_sec_for_each_pat_entry() function to fail, and in the flow that jumps to free_eit, the memory that was freed by vidtv_psi_*_table_destroy() can be accessed again by vidtv_psi_*_event_destroy() due to the uninitialized local pointer, so it is freed once again.  Therefore, to prevent use-after-free and double-free vulnerability, local pointers must be initialized to NULL when transferring memory ownership.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68769",
                        "url": "https://ubuntu.com/security/CVE-2025-68769",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix return value of f2fs_recover_fsync_data()  With below scripts, it will trigger panic in f2fs:  mkfs.f2fs -f /dev/vdd mount /dev/vdd /mnt/f2fs touch /mnt/f2fs/foo sync echo 111 >> /mnt/f2fs/foo f2fs_io fsync /mnt/f2fs/foo f2fs_io shutdown 2 /mnt/f2fs umount /mnt/f2fs mount -o ro,norecovery /dev/vdd /mnt/f2fs or mount -o ro,disable_roll_forward /dev/vdd /mnt/f2fs  F2FS-fs (vdd): f2fs_recover_fsync_data: recovery fsync data, check_only: 0 F2FS-fs (vdd): Mounted with checkpoint version = 7f5c361f F2FS-fs (vdd): Stopped filesystem due to reason: 0 F2FS-fs (vdd): f2fs_recover_fsync_data: recovery fsync data, check_only: 1 Filesystem f2fs get_tree() didn't set fc->root, returned 1 ------------[ cut here ]------------ kernel BUG at fs/super.c:1761! Oops: invalid opcode: 0000 [#1] SMP PTI CPU: 3 UID: 0 PID: 722 Comm: mount Not tainted 6.18.0-rc2+ #721 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:vfs_get_tree.cold+0x18/0x1a Call Trace:  <TASK>  fc_mount+0x13/0xa0  path_mount+0x34e/0xc50  __x64_sys_mount+0x121/0x150  do_syscall_64+0x84/0x800  entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fa6cc126cfe  The root cause is we missed to handle error number returned from f2fs_recover_fsync_data() when mounting image w/ ro,norecovery or ro,disable_roll_forward mount option, result in returning a positive error number to vfs_get_tree(), fix it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71069",
                        "url": "https://ubuntu.com/security/CVE-2025-71069",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: invalidate dentry cache on failed whiteout creation  F2FS can mount filesystems with corrupted directory depth values that get runtime-clamped to MAX_DIR_HASH_DEPTH. When RENAME_WHITEOUT operations are performed on such directories, f2fs_rename performs directory modifications (updating target entry and deleting source entry) before attempting to add the whiteout entry via f2fs_add_link.  If f2fs_add_link fails due to the corrupted directory structure, the function returns an error to VFS, but the partial directory modifications have already been committed to disk. VFS assumes the entire rename operation failed and does not update the dentry cache, leaving stale mappings.  In the error path, VFS does not call d_move() to update the dentry cache. This results in new_dentry still pointing to the old inode (new_inode) which has already had its i_nlink decremented to zero. The stale cache causes subsequent operations to incorrectly reference the freed inode.  This causes subsequent operations to use cached dentry information that no longer matches the on-disk state. When a second rename targets the same entry, VFS attempts to decrement i_nlink on the stale inode, which may already have i_nlink=0, triggering a WARNING in drop_nlink().  Example sequence: 1. First rename (RENAME_WHITEOUT): file2 → file1    - f2fs updates file1 entry on disk (points to inode 8)    - f2fs deletes file2 entry on disk    - f2fs_add_link(whiteout) fails (corrupted directory)    - Returns error to VFS    - VFS does not call d_move() due to error    - VFS cache still has: file1 → inode 7 (stale!)    - inode 7 has i_nlink=0 (already decremented)  2. Second rename: file3 → file1    - VFS uses stale cache: file1 → inode 7    - Tries to drop_nlink on inode 7 (i_nlink already 0)    - WARNING in drop_nlink()  Fix this by explicitly invalidating old_dentry and new_dentry when f2fs_add_link fails during whiteout creation. This forces VFS to refresh from disk on subsequent operations, ensuring cache consistency even when the rename partially succeeds.  Reproducer: 1. Mount F2FS image with corrupted i_current_depth 2. renameat2(file2, file1, RENAME_WHITEOUT) 3. renameat2(file3, file1, 0) 4. System triggers WARNING in drop_nlink()",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68782",
                        "url": "https://ubuntu.com/security/CVE-2025-68782",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: Reset t_task_cdb pointer in error case  If allocation of cmd->t_task_cdb fails, it remains NULL but is later dereferenced in the 'err' path.  In case of error, reset NULL t_task_cdb value to point at the default fixed-size buffer.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71075",
                        "url": "https://ubuntu.com/security/CVE-2025-71075",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: aic94xx: fix use-after-free in device removal path  The asd_pci_remove() function fails to synchronize with pending tasklets before freeing the asd_ha structure, leading to a potential use-after-free vulnerability.  When a device removal is triggered (via hot-unplug or module unload), race condition can occur.  The fix adds tasklet_kill() before freeing the asd_ha structure, ensuring all scheduled tasklets complete before cleanup proceeds.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68818",
                        "url": "https://ubuntu.com/security/CVE-2025-68818",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: Revert \"scsi: qla2xxx: Perform lockless command completion in abort path\"  This reverts commit 0367076b0817d5c75dfb83001ce7ce5c64d803a9.  The commit being reverted added code to __qla2x00_abort_all_cmds() to call sp->done() without holding a spinlock.  But unlike the older code below it, this new code failed to check sp->cmd_type and just assumed TYPE_SRB, which results in a jump to an invalid pointer in target-mode with TYPE_TGT_CMD:  qla2xxx [0000:65:00.0]-d034:8: qla24xx_do_nack_work create sess success   0000000009f7a79b qla2xxx [0000:65:00.0]-5003:8: ISP System Error - mbx1=1ff5h mbx2=10h   mbx3=0h mbx4=0h mbx5=191h mbx6=0h mbx7=0h. qla2xxx [0000:65:00.0]-d01e:8: -> fwdump no buffer qla2xxx [0000:65:00.0]-f03a:8: qla_target(0): System error async event   0x8002 occurred qla2xxx [0000:65:00.0]-00af:8: Performing ISP error recovery -   ha=0000000058183fda. BUG: kernel NULL pointer dereference, address: 0000000000000000 PF: supervisor instruction fetch in kernel mode PF: error_code(0x0010) - not-present page PGD 0 P4D 0 Oops: 0010 [#1] SMP CPU: 2 PID: 9446 Comm: qla2xxx_8_dpc Tainted: G           O       6.1.133 #1 Hardware name: Supermicro Super Server/X11SPL-F, BIOS 4.2 12/15/2023 RIP: 0010:0x0 Code: Unable to access opcode bytes at 0xffffffffffffffd6. RSP: 0018:ffffc90001f93dc8 EFLAGS: 00010206 RAX: 0000000000000282 RBX: 0000000000000355 RCX: ffff88810d16a000 RDX: ffff88810dbadaa8 RSI: 0000000000080000 RDI: ffff888169dc38c0 RBP: ffff888169dc38c0 R08: 0000000000000001 R09: 0000000000000045 R10: ffffffffa034bdf0 R11: 0000000000000000 R12: ffff88810800bb40 R13: 0000000000001aa8 R14: ffff888100136610 R15: ffff8881070f7400 FS:  0000000000000000(0000) GS:ffff88bf80080000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffffffffd6 CR3: 000000010c8ff006 CR4: 00000000003706e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace:  <TASK>  ? __die+0x4d/0x8b  ? page_fault_oops+0x91/0x180  ? trace_buffer_unlock_commit_regs+0x38/0x1a0  ? exc_page_fault+0x391/0x5e0  ? asm_exc_page_fault+0x22/0x30  __qla2x00_abort_all_cmds+0xcb/0x3e0 [qla2xxx_scst]  qla2x00_abort_all_cmds+0x50/0x70 [qla2xxx_scst]  qla2x00_abort_isp_cleanup+0x3b7/0x4b0 [qla2xxx_scst]  qla2x00_abort_isp+0xfd/0x860 [qla2xxx_scst]  qla2x00_do_dpc+0x581/0xa40 [qla2xxx_scst]  kthread+0xa8/0xd0  </TASK>  Then commit 4475afa2646d (\"scsi: qla2xxx: Complete command early within lock\") added the spinlock back, because not having the lock caused a race and a crash.  But qla2x00_abort_srb() in the switch below already checks for qla2x00_chip_is_down() and handles it the same way, so the code above the switch is now redundant and still buggy in target-mode. Remove it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68797",
                        "url": "https://ubuntu.com/security/CVE-2025-68797",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  char: applicom: fix NULL pointer dereference in ac_ioctl  Discovered by Atuin - Automated Vulnerability Discovery Engine.  In ac_ioctl, the validation of IndexCard and the check for a valid RamIO pointer are skipped when cmd is 6. However, the function unconditionally executes readb(apbs[IndexCard].RamIO + VERS) at the end.  If cmd is 6, IndexCard may reference a board that does not exist (where RamIO is NULL), leading to a NULL pointer dereference.  Fix this by skipping the readb access when cmd is 6, as this command is a global information query and does not target a specific board context.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68819",
                        "url": "https://ubuntu.com/security/CVE-2025-68819",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()  rlen value is a user-controlled value, but dtv5100_i2c_msg() does not check the size of the rlen value. Therefore, if it is set to a value larger than sizeof(st->data), an out-of-bounds vuln occurs for st->data.  Therefore, we need to add proper range checking to prevent this vuln.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68820",
                        "url": "https://ubuntu.com/security/CVE-2025-68820",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: xattr: fix null pointer deref in ext4_raw_inode()  If ext4_get_inode_loc() fails (e.g. if it returns -EFSCORRUPTED), iloc.bh will remain set to NULL. Since ext4_xattr_inode_dec_ref_all() lacks error checking, this will lead to a null pointer dereference in ext4_raw_inode(), called right after ext4_get_inode_loc().  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71147",
                        "url": "https://ubuntu.com/security/CVE-2025-71147",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KEYS: trusted: Fix a memory leak in tpm2_load_cmd  'tpm2_load_cmd' allocates a tempoary blob indirectly via 'tpm2_key_decode' but it is not freed in the failure paths. Address this by wrapping the blob into with a cleanup helper.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71108",
                        "url": "https://ubuntu.com/security/CVE-2025-71108",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: typec: ucsi: Handle incorrect num_connectors capability  The UCSI spec states that the num_connectors field is 7 bits, and the 8th bit is reserved and should be set to zero. Some buggy FW has been known to set this bit, and it can lead to a system not booting. Flag that the FW is not behaving correctly, and auto-fix the value so that the system boots correctly.  Found on Lenovo P1 G8 during Linux enablement program. The FW will be fixed, but seemed worth addressing in case it hit platforms that aren't officially Linux supported.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71114",
                        "url": "https://ubuntu.com/security/CVE-2025-71114",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  via_wdt: fix critical boot hang due to unnamed resource allocation  The VIA watchdog driver uses allocate_resource() to reserve a MMIO region for the watchdog control register. However, the allocated resource was not given a name, which causes the kernel resource tree to contain an entry marked as \"<BAD>\" under /proc/iomem on x86 platforms.  During boot, this unnamed resource can lead to a critical hang because subsequent resource lookups and conflict checks fail to handle the invalid entry properly.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68783",
                        "url": "https://ubuntu.com/security/CVE-2025-68783",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-mixer: us16x08: validate meter packet indices  get_meter_levels_from_urb() parses the 64-byte meter packets sent by the device and fills the per-channel arrays meter_level[], comp_level[] and master_level[] in struct snd_us16x08_meter_store.  Currently the function derives the channel index directly from the meter packet (MUB2(meter_urb, s) - 1) and uses it to index those arrays without validating the range. If the packet contains a negative or out-of-range channel number, the driver may write past the end of these arrays.  Introduce a local channel variable and validate it before updating the arrays. We reject negative indices, limit meter_level[] and comp_level[] to SND_US16X08_MAX_CHANNELS, and guard master_level[] updates with ARRAY_SIZE(master_level).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68776",
                        "url": "https://ubuntu.com/security/CVE-2025-68776",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/hsr: fix NULL pointer dereference in prp_get_untagged_frame()  prp_get_untagged_frame() calls __pskb_copy() to create frame->skb_std but doesn't check if the allocation failed. If __pskb_copy() returns NULL, skb_clone() is called with a NULL pointer, causing a crash:  Oops: general protection fault, probably for non-canonical address 0xdffffc000000000f: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000078-0x000000000000007f] CPU: 0 UID: 0 PID: 5625 Comm: syz.1.18 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:skb_clone+0xd7/0x3a0 net/core/skbuff.c:2041 Code: 03 42 80 3c 20 00 74 08 4c 89 f7 e8 23 29 05 f9 49 83 3e 00 0f 85 a0 01 00 00 e8 94 dd 9d f8 48 8d 6b 7e 49 89 ee 49 c1 ee 03 <43> 0f b6 04 26 84 c0 0f 85 d1 01 00 00 44 0f b6 7d 00 41 83 e7 0c RSP: 0018:ffffc9000d00f200 EFLAGS: 00010207 RAX: ffffffff892235a1 RBX: 0000000000000000 RCX: ffff88803372a480 RDX: 0000000000000000 RSI: 0000000000000820 RDI: 0000000000000000 RBP: 000000000000007e R08: ffffffff8f7d0f77 R09: 1ffffffff1efa1ee R10: dffffc0000000000 R11: fffffbfff1efa1ef R12: dffffc0000000000 R13: 0000000000000820 R14: 000000000000000f R15: ffff88805144cc00 FS:  0000555557f6d500(0000) GS:ffff88808d72f000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000555581d35808 CR3: 000000005040e000 CR4: 0000000000352ef0 Call Trace:  <TASK>  hsr_forward_do net/hsr/hsr_forward.c:-1 [inline]  hsr_forward_skb+0x1013/0x2860 net/hsr/hsr_forward.c:741  hsr_handle_frame+0x6ce/0xa70 net/hsr/hsr_slave.c:84  __netif_receive_skb_core+0x10b9/0x4380 net/core/dev.c:5966  __netif_receive_skb_one_core net/core/dev.c:6077 [inline]  __netif_receive_skb+0x72/0x380 net/core/dev.c:6192  netif_receive_skb_internal net/core/dev.c:6278 [inline]  netif_receive_skb+0x1cb/0x790 net/core/dev.c:6337  tun_rx_batched+0x1b9/0x730 drivers/net/tun.c:1485  tun_get_user+0x2b65/0x3e90 drivers/net/tun.c:1953  tun_chr_write_iter+0x113/0x200 drivers/net/tun.c:1999  new_sync_write fs/read_write.c:593 [inline]  vfs_write+0x5c9/0xb30 fs/read_write.c:686  ksys_write+0x145/0x250 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f0449f8e1ff Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 f9 92 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 4c 93 02 00 48 RSP: 002b:00007ffd7ad94c90 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007f044a1e5fa0 RCX: 00007f0449f8e1ff RDX: 000000000000003e RSI: 0000200000000500 RDI: 00000000000000c8 RBP: 00007ffd7ad94d20 R08: 0000000000000000 R09: 0000000000000000 R10: 000000000000003e R11: 0000000000000293 R12: 0000000000000001 R13: 00007f044a1e5fa0 R14: 00007f044a1e5fa0 R15: 0000000000000003  </TASK>  Add a NULL check immediately after __pskb_copy() to handle allocation failures gracefully.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68777",
                        "url": "https://ubuntu.com/security/CVE-2025-68777",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: ti_am335x_tsc - fix off-by-one error in wire_order validation  The current validation 'wire_order[i] > ARRAY_SIZE(config_pins)' allows wire_order[i] to equal ARRAY_SIZE(config_pins), which causes out-of-bounds access when used as index in 'config_pins[wire_order[i]]'.  Since config_pins has 4 elements (indices 0-3), the valid range for wire_order should be 0-3. Fix the off-by-one error by using >= instead of > in the validation check.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71112",
                        "url": "https://ubuntu.com/security/CVE-2025-71112",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hns3: add VLAN id validation before using  Currently, the VLAN id may be used without validation when receive a VLAN configuration mailbox from VF. The length of vlan_del_fail_bmap is BITS_TO_LONGS(VLAN_N_VID). It may cause out-of-bounds memory access once the VLAN id is bigger than or equal to VLAN_N_VID.  Therefore, VLAN id needs to be checked to ensure it is within the range of VLAN_N_VID.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71064",
                        "url": "https://ubuntu.com/security/CVE-2025-71064",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hns3: using the num_tqps in the vf driver to apply for resources  Currently, hdev->htqp is allocated using hdev->num_tqps, and kinfo->tqp is allocated using kinfo->num_tqps. However, kinfo->num_tqps is set to min(new_tqps, hdev->num_tqps);  Therefore, kinfo->num_tqps may be smaller than hdev->num_tqps, which causes some hdev->htqp[i] to remain uninitialized in hclgevf_knic_setup().  Thus, this patch allocates hdev->htqp and kinfo->tqp using hdev->num_tqps, ensuring that the lengths of hdev->htqp and kinfo->tqp are consistent and that all elements are properly initialized.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68816",
                        "url": "https://ubuntu.com/security/CVE-2025-68816",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5: fw_tracer, Validate format string parameters  Add validation for format string parameters in the firmware tracer to prevent potential security vulnerabilities and crashes from malformed format strings received from firmware.  The firmware tracer receives format strings from the device firmware and uses them to format trace messages. Without proper validation, bad firmware could provide format strings with invalid format specifiers (e.g., %s, %p, %n) that could lead to crashes, or other undefined behavior.  Add mlx5_tracer_validate_params() to validate that all format specifiers in trace strings are limited to safe integer/hex formats (%x, %d, %i, %u, %llx, %lx, etc.). Reject strings containing other format types that could be used to access arbitrary memory or cause crashes. Invalid format strings are added to the trace output for visibility with \"BAD_FORMAT: \" prefix.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68795",
                        "url": "https://ubuntu.com/security/CVE-2025-68795",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ethtool: Avoid overflowing userspace buffer on stats query  The ethtool -S command operates across three ioctl calls: ETHTOOL_GSSET_INFO for the size, ETHTOOL_GSTRINGS for the names, and ETHTOOL_GSTATS for the values.  If the number of stats changes between these calls (e.g., due to device reconfiguration), userspace's buffer allocation will be incorrect, potentially leading to buffer overflow.  Drivers are generally expected to maintain stable stat counts, but some drivers (e.g., mlx5, bnx2x, bna, ksz884x) use dynamic counters, making this scenario possible.  Some drivers try to handle this internally: - bnad_get_ethtool_stats() returns early in case stats.n_stats is not   equal to the driver's stats count. - micrel/ksz884x also makes sure not to write anything beyond   stats.n_stats and overflow the buffer.  However, both use stats.n_stats which is already assigned with the value returned from get_sset_count(), hence won't solve the issue described here.  Change ethtool_get_strings(), ethtool_get_stats(), ethtool_get_phy_stats() to not return anything in case of a mismatch between userspace's size and get_sset_size(), to prevent buffer overflow. The returned n_stats value will be equal to zero, to reflect that nothing has been returned.  This could result in one of two cases when using upstream ethtool, depending on when the size change is detected: 1. When detected in ethtool_get_strings():     # ethtool -S eth2     no stats available  2. When detected in get stats, all stats will be reported as zero.  Both cases are presumably transient, and a subsequent ethtool call should succeed.  Other than the overflow avoidance, these two cases are very evident (no output/cleared stats), which is arguably better than presenting incorrect/shifted stats. I also considered returning an error instead of a \"silent\" response, but that seems more destructive towards userspace apps.  Notes: - This patch does not claim to fix the inherent race, it only makes sure   that we do not overflow the userspace buffer, and makes for a more   predictable behavior.  - RTNL lock is held during each ioctl, the race window exists between   the separate ioctl calls when the lock is released.  - Userspace ethtool always fills stats.n_stats, but it is likely that   these stats ioctls are implemented in other userspace applications   which might not fill it. The added code checks that it's not zero,   to prevent any regressions.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68815",
                        "url": "https://ubuntu.com/security/CVE-2025-68815",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: ets: Remove drr class from the active list if it changes to strict  Whenever a user issues an ets qdisc change command, transforming a drr class into a strict one, the ets code isn't checking whether that class was in the active list and removing it. This means that, if a user changes a strict class (which was in the active list) back to a drr one, that class will be added twice to the active list [1].  Doing so with the following commands:  tc qdisc add dev lo root handle 1: ets bands 2 strict 1 tc qdisc add dev lo parent 1:2 handle 20: \\     tbf rate 8bit burst 100b latency 1s tc filter add dev lo parent 1: basic classid 1:2 ping -c1 -W0.01 -s 56 127.0.0.1 tc qdisc change dev lo root handle 1: ets bands 2 strict 2 tc qdisc change dev lo root handle 1: ets bands 2 strict 1 ping -c1 -W0.01 -s 56 127.0.0.1  Will trigger the following splat with list debug turned on:  [   59.279014][  T365] ------------[ cut here ]------------ [   59.279452][  T365] list_add double add: new=ffff88801d60e350, prev=ffff88801d60e350, next=ffff88801d60e2c0. [   59.280153][  T365] WARNING: CPU: 3 PID: 365 at lib/list_debug.c:35 __list_add_valid_or_report+0x17f/0x220 [   59.280860][  T365] Modules linked in: [   59.281165][  T365] CPU: 3 UID: 0 PID: 365 Comm: tc Not tainted 6.18.0-rc7-00105-g7e9f13163c13-dirty #239 PREEMPT(voluntary) [   59.281977][  T365] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [   59.282391][  T365] RIP: 0010:__list_add_valid_or_report+0x17f/0x220 [   59.282842][  T365] Code: 89 c6 e8 d4 b7 0d ff 90 0f 0b 90 90 31 c0 e9 31 ff ff ff 90 48 c7 c7 e0 a0 22 9f 48 89 f2 48 89 c1 4c 89 c6 e8 b2 b7 0d ff 90 <0f> 0b 90 90 31 c0 e9 0f ff ff ff 48 89 f7 48 89 44 24 10 4c 89 44 ... [   59.288812][  T365] Call Trace: [   59.289056][  T365]  <TASK> [   59.289224][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.289546][  T365]  ets_qdisc_change+0xd2b/0x1e80 [   59.289891][  T365]  ? __lock_acquire+0x7e7/0x1be0 [   59.290223][  T365]  ? __pfx_ets_qdisc_change+0x10/0x10 [   59.290546][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.290898][  T365]  ? __mutex_trylock_common+0xda/0x240 [   59.291228][  T365]  ? __pfx___mutex_trylock_common+0x10/0x10 [   59.291655][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.291993][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.292313][  T365]  ? trace_contention_end+0xc8/0x110 [   59.292656][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.293022][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.293351][  T365]  tc_modify_qdisc+0x63a/0x1cf0  Fix this by always checking and removing an ets class from the active list when changing it to strict.  [1] https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/net/sched/sch_ets.c?id=ce052b9402e461a9aded599f5b47e76bc727f7de#n663",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68799",
                        "url": "https://ubuntu.com/security/CVE-2025-68799",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  caif: fix integer underflow in cffrml_receive()  The cffrml_receive() function extracts a length field from the packet header and, when FCS is disabled, subtracts 2 from this length without validating that len >= 2.  If an attacker sends a malicious packet with a length field of 0 or 1 to an interface with FCS disabled, the subtraction causes an integer underflow.  This can lead to memory exhaustion and kernel instability, potential information disclosure if padding contains uninitialized kernel memory.  Fix this by validating that len >= 2 before performing the subtraction.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68813",
                        "url": "https://ubuntu.com/security/CVE-2025-68813",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: fix ipv4 null-ptr-deref in route error path  The IPv4 code path in __ip_vs_get_out_rt() calls dst_link_failure() without ensuring skb->dev is set, leading to a NULL pointer dereference in fib_compute_spec_dst() when ipv4_link_failure() attempts to send ICMP destination unreachable messages.  The issue emerged after commit ed0de45a1008 (\"ipv4: recompile ip options in ipv4_link_failure\") started calling __ip_options_compile() from ipv4_link_failure(). This code path eventually calls fib_compute_spec_dst() which dereferences skb->dev. An attempt was made to fix the NULL skb->dev dereference in commit 0113d9c9d1cc (\"ipv4: fix null-deref in ipv4_link_failure\"), but it only addressed the immediate dev_net(skb->dev) dereference by using a fallback device. The fix was incomplete because fib_compute_spec_dst() later in the call chain still accesses skb->dev directly, which remains NULL when IPVS calls dst_link_failure().  The crash occurs when: 1. IPVS processes a packet in NAT mode with a misconfigured destination 2. Route lookup fails in __ip_vs_get_out_rt() before establishing a route 3. The error path calls dst_link_failure(skb) with skb->dev == NULL 4. ipv4_link_failure() → ipv4_send_dest_unreach() →    __ip_options_compile() → fib_compute_spec_dst() 5. fib_compute_spec_dst() dereferences NULL skb->dev  Apply the same fix used for IPv6 in commit 326bf17ea5d4 (\"ipvs: fix ipv6 route unreach panic\"): set skb->dev from skb_dst(skb)->dev before calling dst_link_failure().  KASAN: null-ptr-deref in range [0x0000000000000328-0x000000000000032f] CPU: 1 PID: 12732 Comm: syz.1.3469 Not tainted 6.6.114 #2 RIP: 0010:__in_dev_get_rcu include/linux/inetdevice.h:233 RIP: 0010:fib_compute_spec_dst+0x17a/0x9f0 net/ipv4/fib_frontend.c:285 Call Trace:   <TASK>   spec_dst_fill net/ipv4/ip_options.c:232   spec_dst_fill net/ipv4/ip_options.c:229   __ip_options_compile+0x13a1/0x17d0 net/ipv4/ip_options.c:330   ipv4_send_dest_unreach net/ipv4/route.c:1252   ipv4_link_failure+0x702/0xb80 net/ipv4/route.c:1265   dst_link_failure include/net/dst.h:437   __ip_vs_get_out_rt+0x15fd/0x19e0 net/netfilter/ipvs/ip_vs_xmit.c:412   ip_vs_nat_xmit+0x1d8/0xc80 net/netfilter/ipvs/ip_vs_xmit.c:764",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68785",
                        "url": "https://ubuntu.com/security/CVE-2025-68785",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: openvswitch: fix middle attribute validation in push_nsh() action  The push_nsh() action structure looks like this:   OVS_ACTION_ATTR_PUSH_NSH(OVS_KEY_ATTR_NSH(OVS_NSH_KEY_ATTR_BASE,...))  The outermost OVS_ACTION_ATTR_PUSH_NSH attribute is OK'ed by the nla_for_each_nested() inside __ovs_nla_copy_actions().  The innermost OVS_NSH_KEY_ATTR_BASE/MD1/MD2 are OK'ed by the nla_for_each_nested() inside nsh_key_put_from_nlattr().  But nothing checks if the attribute in the middle is OK.  We don't even check that this attribute is the OVS_KEY_ATTR_NSH.  We just do a double unwrap with a pair of nla_data() calls - first time directly while calling validate_push_nsh() and the second time as part of the nla_for_each_nested() macro, which isn't safe, potentially causing invalid memory access if the size of this attribute is incorrect.  The failure may not be noticed during validation due to larger netlink buffer, but cause trouble later during action execution where the buffer is allocated exactly to the size:   BUG: KASAN: slab-out-of-bounds in nsh_hdr_from_nlattr+0x1dd/0x6a0 [openvswitch]  Read of size 184 at addr ffff88816459a634 by task a.out/22624   CPU: 8 UID: 0 PID: 22624 6.18.0-rc7+ #115 PREEMPT(voluntary)  Call Trace:   <TASK>   dump_stack_lvl+0x51/0x70   print_address_description.constprop.0+0x2c/0x390   kasan_report+0xdd/0x110   kasan_check_range+0x35/0x1b0   __asan_memcpy+0x20/0x60   nsh_hdr_from_nlattr+0x1dd/0x6a0 [openvswitch]   push_nsh+0x82/0x120 [openvswitch]   do_execute_actions+0x1405/0x2840 [openvswitch]   ovs_execute_actions+0xd5/0x3b0 [openvswitch]   ovs_packet_cmd_execute+0x949/0xdb0 [openvswitch]   genl_family_rcv_msg_doit+0x1d6/0x2b0   genl_family_rcv_msg+0x336/0x580   genl_rcv_msg+0x9f/0x130   netlink_rcv_skb+0x11f/0x370   genl_rcv+0x24/0x40   netlink_unicast+0x73e/0xaa0   netlink_sendmsg+0x744/0xbf0   __sys_sendto+0x3d6/0x450   do_syscall_64+0x79/0x2c0   entry_SYSCALL_64_after_hwframe+0x76/0x7e   </TASK>  Let's add some checks that the attribute is properly sized and it's the only one attribute inside the action.  Technically, there is no real reason for OVS_KEY_ATTR_NSH to be there, as we know that we're pushing an NSH header already, it just creates extra nesting, but that's how uAPI works today.  So, keeping as it is.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68800",
                        "url": "https://ubuntu.com/security/CVE-2025-68800",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mlxsw: spectrum_mr: Fix use-after-free when updating multicast route stats  Cited commit added a dedicated mutex (instead of RTNL) to protect the multicast route list, so that it will not change while the driver periodically traverses it in order to update the kernel about multicast route stats that were queried from the device.  One instance of list entry deletion (during route replace) was missed and it can result in a use-after-free [1].  Fix by acquiring the mutex before deleting the entry from the list and releasing it afterwards.  [1] BUG: KASAN: slab-use-after-free in mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum] Read of size 8 at addr ffff8881523c2fa8 by task kworker/2:5/22043  CPU: 2 UID: 0 PID: 22043 Comm: kworker/2:5 Not tainted 6.18.0-rc1-custom-g1a3d6d7cd014 #1 PREEMPT(full) Hardware name: Mellanox Technologies Ltd. MSN2010/SA002610, BIOS 5.6.5 08/24/2017 Workqueue: mlxsw_core mlxsw_sp_mr_stats_update [mlxsw_spectrum] Call Trace:  <TASK>  dump_stack_lvl+0xba/0x110  print_report+0x174/0x4f5  kasan_report+0xdf/0x110  mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30  </TASK>  Allocated by task 29933:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0x8f/0xa0  mlxsw_sp_mr_route_add+0xd8/0x4770 [mlxsw_spectrum]  mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30  Freed by task 29933:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_save_free_info+0x3b/0x70  __kasan_slab_free+0x43/0x70  kfree+0x14e/0x700  mlxsw_sp_mr_route_add+0x2dea/0x4770 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:444 [mlxsw_spectrum]  mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68801",
                        "url": "https://ubuntu.com/security/CVE-2025-68801",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mlxsw: spectrum_router: Fix neighbour use-after-free  We sometimes observe use-after-free when dereferencing a neighbour [1]. The problem seems to be that the driver stores a pointer to the neighbour, but without holding a reference on it. A reference is only taken when the neighbour is used by a nexthop.  Fix by simplifying the reference counting scheme. Always take a reference when storing a neighbour pointer in a neighbour entry. Avoid taking a referencing when the neighbour is used by a nexthop as the neighbour entry associated with the nexthop already holds a reference.  Tested by running the test that uncovered the problem over 300 times. Without this patch the problem was reproduced after a handful of iterations.  [1] BUG: KASAN: slab-use-after-free in mlxsw_sp_neigh_entry_update+0x2d4/0x310 Read of size 8 at addr ffff88817f8e3420 by task ip/3929  CPU: 3 UID: 0 PID: 3929 Comm: ip Not tainted 6.18.0-rc4-virtme-g36b21a067510 #3 PREEMPT(full) Hardware name: Nvidia SN5600/VMOD0013, BIOS 5.13 05/31/2023 Call Trace:  <TASK>  dump_stack_lvl+0x6f/0xa0  print_address_description.constprop.0+0x6e/0x300  print_report+0xfc/0x1fb  kasan_report+0xe4/0x110  mlxsw_sp_neigh_entry_update+0x2d4/0x310  mlxsw_sp_router_rif_gone_sync+0x35f/0x510  mlxsw_sp_rif_destroy+0x1ea/0x730  mlxsw_sp_inetaddr_port_vlan_event+0xa1/0x1b0  __mlxsw_sp_inetaddr_lag_event+0xcc/0x130  __mlxsw_sp_inetaddr_event+0xf5/0x3c0  mlxsw_sp_router_netdevice_event+0x1015/0x1580  notifier_call_chain+0xcc/0x150  call_netdevice_notifiers_info+0x7e/0x100  __netdev_upper_dev_unlink+0x10b/0x210  netdev_upper_dev_unlink+0x79/0xa0  vrf_del_slave+0x18/0x50  do_set_master+0x146/0x7d0  do_setlink.isra.0+0x9a0/0x2880  rtnl_newlink+0x637/0xb20  rtnetlink_rcv_msg+0x6fe/0xb90  netlink_rcv_skb+0x123/0x380  netlink_unicast+0x4a3/0x770  netlink_sendmsg+0x75b/0xc90  __sock_sendmsg+0xbe/0x160  ____sys_sendmsg+0x5b2/0x7d0  ___sys_sendmsg+0xfd/0x180  __sys_sendmsg+0x124/0x1c0  do_syscall_64+0xbb/0xfd0  entry_SYSCALL_64_after_hwframe+0x4b/0x53 [...]  Allocated by task 109:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0x7b/0x90  __kmalloc_noprof+0x2c1/0x790  neigh_alloc+0x6af/0x8f0  ___neigh_create+0x63/0xe90  mlxsw_sp_nexthop_neigh_init+0x430/0x7e0  mlxsw_sp_nexthop_type_init+0x212/0x960  mlxsw_sp_nexthop6_group_info_init.constprop.0+0x81f/0x1280  mlxsw_sp_nexthop6_group_get+0x392/0x6a0  mlxsw_sp_fib6_entry_create+0x46a/0xfd0  mlxsw_sp_router_fib6_replace+0x1ed/0x5f0  mlxsw_sp_router_fib6_event_work+0x10a/0x2a0  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20  Freed by task 154:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_save_free_info+0x3b/0x60  __kasan_slab_free+0x43/0x70  kmem_cache_free_bulk.part.0+0x1eb/0x5e0  kvfree_rcu_bulk+0x1f2/0x260  kfree_rcu_work+0x130/0x1b0  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20  Last potentially related work creation:  kasan_save_stack+0x30/0x50  kasan_record_aux_stack+0x8c/0xa0  kvfree_call_rcu+0x93/0x5b0  mlxsw_sp_router_neigh_event_work+0x67d/0x860  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71066",
                        "url": "https://ubuntu.com/security/CVE-2025-71066",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: ets: Always remove class from active list before deleting in ets_qdisc_change  zdi-disclosures@trendmicro.com says:  The vulnerability is a race condition between `ets_qdisc_dequeue` and `ets_qdisc_change`.  It leads to UAF on `struct Qdisc` object. Attacker requires the capability to create new user and network namespace in order to trigger the bug. See my additional commentary at the end of the analysis.  Analysis:  static int ets_qdisc_change(struct Qdisc *sch, struct nlattr *opt,                           struct netlink_ext_ack *extack) { ...        // (1) this lock is preventing .change handler (`ets_qdisc_change`)       //to race with .dequeue handler (`ets_qdisc_dequeue`)       sch_tree_lock(sch);        for (i = nbands; i < oldbands; i++) {               if (i >= q->nstrict && q->classes[i].qdisc->q.qlen)                       list_del_init(&q->classes[i].alist);               qdisc_purge_queue(q->classes[i].qdisc);       }        WRITE_ONCE(q->nbands, nbands);       for (i = nstrict; i < q->nstrict; i++) {               if (q->classes[i].qdisc->q.qlen) { \t\t      // (2) the class is added to the q->active                       list_add_tail(&q->classes[i].alist, &q->active);                       q->classes[i].deficit = quanta[i];               }       }       WRITE_ONCE(q->nstrict, nstrict);       memcpy(q->prio2band, priomap, sizeof(priomap));        for (i = 0; i < q->nbands; i++)               WRITE_ONCE(q->classes[i].quantum, quanta[i]);        for (i = oldbands; i < q->nbands; i++) {               q->classes[i].qdisc = queues[i];               if (q->classes[i].qdisc != &noop_qdisc)                       qdisc_hash_add(q->classes[i].qdisc, true);       }        // (3) the qdisc is unlocked, now dequeue can be called in parallel       // to the rest of .change handler       sch_tree_unlock(sch);        ets_offload_change(sch);       for (i = q->nbands; i < oldbands; i++) { \t      // (4) we're reducing the refcount for our class's qdisc and \t      //  freeing it               qdisc_put(q->classes[i].qdisc); \t      // (5) If we call .dequeue between (4) and (5), we will have \t      // a strong UAF and we can control RIP               q->classes[i].qdisc = NULL;               WRITE_ONCE(q->classes[i].quantum, 0);               q->classes[i].deficit = 0;               gnet_stats_basic_sync_init(&q->classes[i].bstats);               memset(&q->classes[i].qstats, 0, sizeof(q->classes[i].qstats));       }       return 0; }  Comment: This happens because some of the classes have their qdiscs assigned to NULL, but remain in the active list. This commit fixes this issue by always removing the class from the active list before deleting and freeing its associated qdisc  Reproducer Steps (trimmed version of what was sent by zdi-disclosures@trendmicro.com)  ``` DEV=\"${DEV:-lo}\" ROOT_HANDLE=\"${ROOT_HANDLE:-1:}\" BAND2_HANDLE=\"${BAND2_HANDLE:-20:}\"   # child under 1:2 PING_BYTES=\"${PING_BYTES:-48}\" PING_COUNT=\"${PING_COUNT:-200000}\" PING_DST=\"${PING_DST:-127.0.0.1}\"  SLOW_TBF_RATE=\"${SLOW_TBF_RATE:-8bit}\" SLOW_TBF_BURST=\"${SLOW_TBF_BURST:-100b}\" SLOW_TBF_LAT=\"${SLOW_TBF_LAT:-1s}\"  cleanup() {   tc qdisc del dev \"$DEV\" root 2>/dev/null } trap cleanup EXIT  ip link set \"$DEV\" up  tc qdisc del dev \"$DEV\" root 2>/dev/null || true  tc qdisc add dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 2  tc qdisc add dev \"$DEV\" parent 1:2 handle \"$BAND2_HANDLE\" \\   tbf rate \"$SLOW_TBF_RATE\" burst \"$SLOW_TBF_BURST\" latency \"$SLOW_TBF_LAT\"  tc filter add dev \"$DEV\" parent 1: protocol all prio 1 u32 match u32 0 0 flowid 1:2 tc -s qdisc ls dev $DEV  ping -I \"$DEV\" -f -c \"$PING_COUNT\" -s \"$PING_BYTES\" -W 0.001 \"$PING_DST\" \\   >/dev/null 2>&1 & tc qdisc change dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 0 tc qdisc change dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 2 tc -s qdisc ls dev $DEV tc qdisc del dev \"$DEV\" parent ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68787",
                        "url": "https://ubuntu.com/security/CVE-2025-68787",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netrom: Fix memory leak in nr_sendmsg()  syzbot reported a memory leak [1].  When function sock_alloc_send_skb() return NULL in nr_output(), the original skb is not freed, which was allocated in nr_sendmsg(). Fix this by freeing it before return.  [1] BUG: memory leak unreferenced object 0xffff888129f35500 (size 240):   comm \"syz.0.17\", pid 6119, jiffies 4294944652   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     00 00 00 00 00 00 00 00 00 10 52 28 81 88 ff ff  ..........R(....   backtrace (crc 1456a3e4):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4983 [inline]     slab_alloc_node mm/slub.c:5288 [inline]     kmem_cache_alloc_node_noprof+0x36f/0x5e0 mm/slub.c:5340     __alloc_skb+0x203/0x240 net/core/skbuff.c:660     alloc_skb include/linux/skbuff.h:1383 [inline]     alloc_skb_with_frags+0x69/0x3f0 net/core/skbuff.c:6671     sock_alloc_send_pskb+0x379/0x3e0 net/core/sock.c:2965     sock_alloc_send_skb include/net/sock.h:1859 [inline]     nr_sendmsg+0x287/0x450 net/netrom/af_netrom.c:1105     sock_sendmsg_nosec net/socket.c:727 [inline]     __sock_sendmsg net/socket.c:742 [inline]     sock_write_iter+0x293/0x2a0 net/socket.c:1195     new_sync_write fs/read_write.c:593 [inline]     vfs_write+0x45d/0x710 fs/read_write.c:686     ksys_write+0x143/0x170 fs/read_write.c:738     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]     do_syscall_64+0xa4/0xfa0 arch/x86/entry/syscall_64.c:94     entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68767",
                        "url": "https://ubuntu.com/security/CVE-2025-68767",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hfsplus: Verify inode mode when loading from disk  syzbot is reporting that S_IFMT bits of inode->i_mode can become bogus when the S_IFMT bits of the 16bits \"mode\" field loaded from disk are corrupted.  According to [1], the permissions field was treated as reserved in Mac OS 8 and 9. According to [2], the reserved field was explicitly initialized with 0, and that field must remain 0 as long as reserved. Therefore, when the \"mode\" field is not 0 (i.e. no longer reserved), the file must be S_IFDIR if dir == 1, and the file must be one of S_IFREG/S_IFLNK/S_IFCHR/ S_IFBLK/S_IFIFO/S_IFSOCK if dir == 0.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68774",
                        "url": "https://ubuntu.com/security/CVE-2025-68774",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create  When sync() and link() are called concurrently, both threads may enter hfs_bnode_find() without finding the node in the hash table and proceed to create it.  Thread A:   hfsplus_write_inode()     -> hfsplus_write_system_inode()       -> hfs_btree_write()         -> hfs_bnode_find(tree, 0)           -> __hfs_bnode_create(tree, 0)  Thread B:   hfsplus_create_cat()     -> hfs_brec_insert()       -> hfs_bnode_split()         -> hfs_bmap_alloc()           -> hfs_bnode_find(tree, 0)             -> __hfs_bnode_create(tree, 0)  In this case, thread A creates the bnode, sets refcnt=1, and hashes it. Thread B also tries to create the same bnode, notices it has already been inserted, drops its own instance, and uses the hashed one without getting the node.  ```  \tnode2 = hfs_bnode_findhash(tree, cnid); \tif (!node2) {                                 <- Thread A \t\thash = hfs_bnode_hash(cnid); \t\tnode->next_hash = tree->node_hash[hash]; \t\ttree->node_hash[hash] = node; \t\ttree->node_hash_cnt++; \t} else {                                      <- Thread B \t\tspin_unlock(&tree->hash_lock); \t\tkfree(node); \t\twait_event(node2->lock_wq, \t\t\t!test_bit(HFS_BNODE_NEW, &node2->flags)); \t\treturn node2; \t} ```  However, hfs_bnode_find() requires each call to take a reference. Here both threads end up setting refcnt=1. When they later put the node, this triggers:  BUG_ON(!atomic_read(&node->refcnt))  In this scenario, Thread B in fact finds the node in the hash table rather than creating a new one, and thus must take a reference.  Fix this by calling hfs_bnode_get() when reusing a bnode newly created by another thread to ensure the refcount is updated correctly.  A similar bug was fixed in HFS long ago in commit a9dc087fd3c4 (\"fix missing hfs_bnode_get() in __hfs_bnode_create\") but the same issue remained in HFS+ until now.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71118",
                        "url": "https://ubuntu.com/security/CVE-2025-71118",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ACPICA: Avoid walking the Namespace if start_node is NULL  Although commit 0c9992315e73 (\"ACPICA: Avoid walking the ACPI Namespace if it is not there\") fixed the situation when both start_node and acpi_gbl_root_node are NULL, the Linux kernel mainline now still crashed on Honor Magicbook 14 Pro [1].  That happens due to the access to the member of parent_node in acpi_ns_get_next_node().  The NULL pointer dereference will always happen, no matter whether or not the start_node is equal to ACPI_ROOT_OBJECT, so move the check of start_node being NULL out of the if block.  Unfortunately, all the attempts to contact Honor have failed, they refused to provide any technical support for Linux.  The bad DSDT table's dump could be found on GitHub [2].  DMI: HONOR FMB-P/FMB-P-PCB, BIOS 1.13 05/08/2025  [ rjw: Subject adjustment, changelog edits ]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68780",
                        "url": "https://ubuntu.com/security/CVE-2025-68780",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sched/deadline: only set free_cpus for online runqueues  Commit 16b269436b72 (\"sched/deadline: Modify cpudl::free_cpus to reflect rd->online\") introduced the cpudl_set/clear_freecpu functions to allow the cpu_dl::free_cpus mask to be manipulated by the deadline scheduler class rq_on/offline callbacks so the mask would also reflect this state.  Commit 9659e1eeee28 (\"sched/deadline: Remove cpu_active_mask from cpudl_find()\") removed the check of the cpu_active_mask to save some processing on the premise that the cpudl::free_cpus mask already reflected the runqueue online state.  Unfortunately, there are cases where it is possible for the cpudl_clear function to set the free_cpus bit for a CPU when the deadline runqueue is offline. When this occurs while a CPU is connected to the default root domain the flag may retain the bad state after the CPU has been unplugged. Later, a different CPU that is transitioning through the default root domain may push a deadline task to the powered down CPU when cpudl_find sees its free_cpus bit is set. If this happens the task will not have the opportunity to run.  One example is outlined here: https://lore.kernel.org/lkml/20250110233010.2339521-1-opendmb@gmail.com  Another occurs when the last deadline task is migrated from a CPU that has an offlined runqueue. The dequeue_task member of the deadline scheduler class will eventually call cpudl_clear and set the free_cpus bit for the CPU.  This commit modifies the cpudl_clear function to be aware of the online state of the deadline runqueue so that the free_cpus mask can be updated appropriately.  It is no longer necessary to manage the mask outside of the cpudl_set/clear functions so the cpudl_set/clear_freecpu functions are removed. In addition, since the free_cpus mask is now only updated under the cpudl lock the code was changed to use the non-atomic __cpumask functions.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68346",
                        "url": "https://ubuntu.com/security/CVE-2025-68346",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: dice: fix buffer overflow in detect_stream_formats()  The function detect_stream_formats() reads the stream_count value directly from a FireWire device without validating it. This can lead to out-of-bounds writes when a malicious device provides a stream_count value greater than MAX_STREAMS.  Fix by applying the same validation to both TX and RX stream counts in detect_stream_formats().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68764",
                        "url": "https://ubuntu.com/security/CVE-2025-68764",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFS: Automounted filesystems should inherit ro,noexec,nodev,sync flags  When a filesystem is being automounted, it needs to preserve the user-set superblock mount options, such as the \"ro\" flag.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68349",
                        "url": "https://ubuntu.com/security/CVE-2025-68349",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSv4/pNFS: Clear NFS_INO_LAYOUTCOMMIT in pnfs_mark_layout_stateid_invalid  Fixes a crash when layout is null during this call stack:  write_inode     -> nfs4_write_inode         -> pnfs_layoutcommit_inode  pnfs_set_layoutcommit relies on the lseg refcount to keep the layout around. Need to clear NFS_INO_LAYOUTCOMMIT otherwise we might attempt to reference a null layout.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68325",
                        "url": "https://ubuntu.com/security/CVE-2025-68325",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop  In cake_drop(), qdisc_tree_reduce_backlog() is used to update the qlen and backlog of the qdisc hierarchy. Its caller, cake_enqueue(), assumes that the parent qdisc will enqueue the current packet. However, this assumption breaks when cake_enqueue() returns NET_XMIT_CN: the parent qdisc stops enqueuing current packet, leaving the tree qlen/backlog accounting inconsistent. This mismatch can lead to a NULL dereference (e.g., when the parent Qdisc is qfq_qdisc).  This patch computes the qlen/backlog delta in a more robust way by observing the difference before and after the series of cake_drop() calls, and then compensates the qdisc tree accounting if cake_enqueue() returns NET_XMIT_CN.  To ensure correct compensation when ACK thinning is enabled, a new variable is introduced to keep qlen unchanged.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-18 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68354",
                        "url": "https://ubuntu.com/security/CVE-2025-68354",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regulator: core: Protect regulator_supply_alias_list with regulator_list_mutex  regulator_supply_alias_list was accessed without any locking in regulator_supply_alias(), regulator_register_supply_alias(), and regulator_unregister_supply_alias(). Concurrent registration, unregistration and lookups can race, leading to:  1 use-after-free if an alias entry is removed while being read, 2 duplicate entries when two threads register the same alias, 3 inconsistent alias mappings observed by consumers.  Protect all traversals, insertions and deletions on regulator_supply_alias_list with the existing regulator_list_mutex.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68758",
                        "url": "https://ubuntu.com/security/CVE-2025-68758",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  backlight: led-bl: Add devlink to supplier LEDs  LED Backlight is a consumer of one or multiple LED class devices, but devlink is currently unable to create correct supplier-producer links when the supplier is a class device. It creates instead a link where the supplier is the parent of the expected device.  One consequence is that removal order is not correctly enforced.  Issues happen for example with the following sections in a device tree overlay:      // An LED driver chip     pca9632@62 {         compatible = \"nxp,pca9632\";         reg = <0x62>;  \t// ...          addon_led_pwm: led-pwm@3 {             reg = <3>;             label = \"addon:led:pwm\";         };     };      backlight-addon {         compatible = \"led-backlight\";         leds = <&addon_led_pwm>;         brightness-levels = <255>;         default-brightness-level = <255>;     };  In this example, the devlink should be created between the backlight-addon (consumer) and the pca9632@62 (supplier). Instead it is created between the backlight-addon (consumer) and the parent of the pca9632@62, which is typically the I2C bus adapter.  On removal of the above overlay, the LED driver can be removed before the backlight device, resulting in:      Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010     ...     Call trace:      led_put+0xe0/0x140      devm_led_release+0x6c/0x98  Another way to reproduce the bug without any device tree overlays is unbinding the LED class device (pca9632@62) before unbinding the consumer (backlight-addon):    echo 11-0062 >/sys/bus/i2c/drivers/leds-pca963x/unbind   echo ...backlight-dock >/sys/bus/platform/drivers/led-backlight/unbind  Fix by adding a devlink between the consuming led-backlight device and the supplying LED device, as other drivers and subsystems do as well.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68765",
                        "url": "https://ubuntu.com/security/CVE-2025-68765",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()  In mt7615_mcu_wtbl_sta_add(), an skb sskb is allocated. If the subsequent call to mt76_connac_mcu_alloc_wtbl_req() fails, the function returns an error without freeing sskb, leading to a memory leak.  Fix this by calling dev_kfree_skb() on sskb in the error handling path to ensure it is properly released.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68740",
                        "url": "https://ubuntu.com/security/CVE-2025-68740",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ima: Handle error code returned by ima_filter_rule_match()  In ima_match_rules(), if ima_filter_rule_match() returns -ENOENT due to the rule being NULL, the function incorrectly skips the 'if (!rc)' check and sets 'result = true'. The LSM rule is considered a match, causing extra files to be measured by IMA.  This issue can be reproduced in the following scenario: After unloading the SELinux policy module via 'semodule -d', if an IMA measurement is triggered before ima_lsm_rules is updated, in ima_match_rules(), the first call to ima_filter_rule_match() returns -ESTALE. This causes the code to enter the 'if (rc == -ESTALE && !rule_reinitialized)' block, perform ima_lsm_copy_rule() and retry. In ima_lsm_copy_rule(), since the SELinux module has been removed, the rule becomes NULL, and the second call to ima_filter_rule_match() returns -ENOENT. This bypasses the 'if (!rc)' check and results in a false match.  Call trace:   selinux_audit_rule_match+0x310/0x3b8   security_audit_rule_match+0x60/0xa0   ima_match_rules+0x2e4/0x4a0   ima_match_policy+0x9c/0x1e8   ima_get_action+0x48/0x60   process_measurement+0xf8/0xa98   ima_bprm_check+0x98/0xd8   security_bprm_check+0x5c/0x78   search_binary_handler+0x6c/0x318   exec_binprm+0x58/0x1b8   bprm_execve+0xb8/0x130   do_execveat_common.isra.0+0x1a8/0x258   __arm64_sys_execve+0x48/0x68   invoke_syscall+0x50/0x128   el0_svc_common.constprop.0+0xc8/0xf0   do_el0_svc+0x24/0x38   el0_svc+0x44/0x200   el0t_64_sync_handler+0x100/0x130   el0t_64_sync+0x3c8/0x3d0  Fix this by changing 'if (!rc)' to 'if (rc <= 0)' to ensure that error codes like -ENOENT do not bypass the check and accidentally result in a successful match.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68362",
                        "url": "https://ubuntu.com/security/CVE-2025-68362",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rtl818x: rtl8187: Fix potential buffer underflow in rtl8187_rx_cb()  The rtl8187_rx_cb() calculates the rx descriptor header address by subtracting its size from the skb tail pointer. However, it does not validate if the received packet (skb->len from urb->actual_length) is large enough to contain this header.  If a truncated packet is received, this will lead to a buffer underflow, reading memory before the start of the skb data area, and causing a kernel panic.  Add length checks for both rtl8187 and rtl8187b descriptor headers before attempting to access them, dropping the packet cleanly if the check fails.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68759",
                        "url": "https://ubuntu.com/security/CVE-2025-68759",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()  In rtl8180_init_rx_ring(), memory is allocated for skb packets and DMA allocations in a loop. When an allocation fails, the previously successful allocations are not freed on exit.  Fix that by jumping to err_free_rings label on error, which calls rtl8180_free_rx_ring() to free the allocations. Remove the free of rx_ring in rtl8180_init_rx_ring() error path, and set the freed priv->rx_buf entry to null, to avoid double free.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68364",
                        "url": "https://ubuntu.com/security/CVE-2025-68364",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ocfs2: relax BUG() to ocfs2_error() in __ocfs2_move_extent()  In '__ocfs2_move_extent()', relax 'BUG()' to 'ocfs2_error()' just to avoid crashing the whole kernel due to a filesystem corruption.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68366",
                        "url": "https://ubuntu.com/security/CVE-2025-68366",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nbd: defer config unlock in nbd_genl_connect  There is one use-after-free warning when running NBD_CMD_CONNECT and NBD_CLEAR_SOCK:  nbd_genl_connect   nbd_alloc_and_init_config // config_refs=1   nbd_start_device // config_refs=2   set NBD_RT_HAS_CONFIG_REF\t\t\topen nbd // config_refs=3   recv_work done // config_refs=2 \t\t\t\t\t\tNBD_CLEAR_SOCK // config_refs=1 \t\t\t\t\t\tclose nbd // config_refs=0   refcount_inc -> uaf  ------------[ cut here ]------------ refcount_t: addition on 0; use-after-free. WARNING: CPU: 24 PID: 1014 at lib/refcount.c:25 refcount_warn_saturate+0x12e/0x290  nbd_genl_connect+0x16d0/0x1ab0  genl_family_rcv_msg_doit+0x1f3/0x310  genl_rcv_msg+0x44a/0x790  The issue can be easily reproduced by adding a small delay before refcount_inc(&nbd->config_refs) in nbd_genl_connect():          mutex_unlock(&nbd->config_lock);         if (!ret) {                 set_bit(NBD_RT_HAS_CONFIG_REF, &config->runtime_flags); +               printk(\"before sleep\\n\"); +               mdelay(5 * 1000); +               printk(\"after sleep\\n\");                 refcount_inc(&nbd->config_refs);                 nbd_connect_reply(info, nbd->index);         }",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68367",
                        "url": "https://ubuntu.com/security/CVE-2025-68367",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macintosh/mac_hid: fix race condition in mac_hid_toggle_emumouse  The following warning appears when running syzkaller, and this issue also exists in the mainline code.   ------------[ cut here ]------------  list_add double add: new=ffffffffa57eee28, prev=ffffffffa57eee28, next=ffffffffa5e63100.  WARNING: CPU: 0 PID: 1491 at lib/list_debug.c:35 __list_add_valid_or_report+0xf7/0x130  Modules linked in:  CPU: 0 PID: 1491 Comm: syz.1.28 Not tainted 6.6.0+ #3  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014  RIP: 0010:__list_add_valid_or_report+0xf7/0x130  RSP: 0018:ff1100010dfb7b78 EFLAGS: 00010282  RAX: 0000000000000000 RBX: ffffffffa57eee18 RCX: ffffffff97fc9817  RDX: 0000000000040000 RSI: ffa0000002383000 RDI: 0000000000000001  RBP: ffffffffa57eee28 R08: 0000000000000001 R09: ffe21c0021bf6f2c  R10: 0000000000000001 R11: 6464615f7473696c R12: ffffffffa5e63100  R13: ffffffffa57eee28 R14: ffffffffa57eee28 R15: ff1100010dfb7d48  FS:  00007fb14398b640(0000) GS:ff11000119600000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000000 CR3: 000000010d096005 CR4: 0000000000773ef0  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000  DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400  PKRU: 80000000  Call Trace:   <TASK>   input_register_handler+0xb3/0x210   mac_hid_start_emulation+0x1c5/0x290   mac_hid_toggle_emumouse+0x20a/0x240   proc_sys_call_handler+0x4c2/0x6e0   new_sync_write+0x1b1/0x2d0   vfs_write+0x709/0x950   ksys_write+0x12a/0x250   do_syscall_64+0x5a/0x110   entry_SYSCALL_64_after_hwframe+0x78/0xe2  The WARNING occurs when two processes concurrently write to the mac-hid emulation sysctl, causing a race condition in mac_hid_toggle_emumouse(). Both processes read old_val=0, then both try to register the input handler, leading to a double list_add of the same handler.    CPU0                             CPU1   -------------------------        -------------------------   vfs_write() //write 1            vfs_write()  //write 1     proc_sys_write()                 proc_sys_write()       mac_hid_toggle_emumouse()          mac_hid_toggle_emumouse()         old_val = *valp // old_val=0                                            old_val = *valp // old_val=0                                            mutex_lock_killable()                                            proc_dointvec() // *valp=1                                            mac_hid_start_emulation()                                              input_register_handler()                                            mutex_unlock()         mutex_lock_killable()         proc_dointvec()         mac_hid_start_emulation()           input_register_handler() //Trigger Warning         mutex_unlock()  Fix this by moving the old_val read inside the mutex lock region.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68372",
                        "url": "https://ubuntu.com/security/CVE-2025-68372",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nbd: defer config put in recv_work  There is one uaf issue in recv_work when running NBD_CLEAR_SOCK and NBD_CMD_RECONFIGURE:   nbd_genl_connect     // conf_ref=2 (connect and recv_work A)   nbd_open\t       // conf_ref=3   recv_work A done     // conf_ref=2   NBD_CLEAR_SOCK       // conf_ref=1   nbd_genl_reconfigure // conf_ref=2 (trigger recv_work B)   close nbd\t       // conf_ref=1   recv_work B     config_put         // conf_ref=0     atomic_dec(&config->recv_threads); -> UAF  Or only running NBD_CLEAR_SOCK:   nbd_genl_connect   // conf_ref=2   nbd_open \t     // conf_ref=3   NBD_CLEAR_SOCK     // conf_ref=2   close nbd     nbd_release       config_put     // conf_ref=1   recv_work     config_put \t     // conf_ref=0     atomic_dec(&config->recv_threads); -> UAF  Commit 87aac3a80af5 (\"nbd: call nbd_config_put() before notifying the waiter\") moved nbd_config_put() to run before waking up the waiter in recv_work, in order to ensure that nbd_start_device_ioctl() would not be woken up while nbd->task_recv was still uncleared.  However, in nbd_start_device_ioctl(), after being woken up it explicitly calls flush_workqueue() to make sure all current works are finished. Therefore, there is no need to move the config put ahead of the wakeup.  Move nbd_config_put() to the end of recv_work, so that the reference is held for the whole lifetime of the worker thread. This makes sure the config cannot be freed while recv_work is still running, even if clear + reconfigure interleave.  In addition, we don't need to worry about recv_work dropping the last nbd_put (which causes deadlock):  path A (netlink with NBD_CFLAG_DESTROY_ON_DISCONNECT):   connect  // nbd_refs=1 (trigger recv_work)   open nbd // nbd_refs=2   NBD_CLEAR_SOCK   close nbd     nbd_release       nbd_disconnect_and_put         flush_workqueue // recv_work done       nbd_config_put         nbd_put // nbd_refs=1       nbd_put // nbd_refs=0         queue_work  path B (netlink without NBD_CFLAG_DESTROY_ON_DISCONNECT):   connect  // nbd_refs=2 (trigger recv_work)   open nbd // nbd_refs=3   NBD_CLEAR_SOCK // conf_refs=2   close nbd     nbd_release       nbd_config_put // conf_refs=1       nbd_put // nbd_refs=2   recv_work done // conf_refs=0, nbd_refs=1   rmmod // nbd_refs=0  Depends-on: e2daec488c57 (\"nbd: Fix hungtask when nbd_config_put\")",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68746",
                        "url": "https://ubuntu.com/security/CVE-2025-68746",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: tegra210-quad: Fix timeout handling  When the CPU that the QSPI interrupt handler runs on (typically CPU 0) is excessively busy, it can lead to rare cases of the IRQ thread not running before the transfer timeout is reached.  While handling the timeouts, any pending transfers are cleaned up and the message that they correspond to is marked as failed, which leaves the curr_xfer field pointing at stale memory.  To avoid this, clear curr_xfer to NULL upon timeout and check for this condition when the IRQ thread is finally run.  While at it, also make sure to clear interrupts on failure so that new interrupts can be run.  A better, more involved, fix would move the interrupt clearing into a hard IRQ handler. Ideally we would also want to signal that the IRQ thread no longer needs to be run after the timeout is hit to avoid the extra check for a valid transfer.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68724",
                        "url": "https://ubuntu.com/security/CVE-2025-68724",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: asymmetric_keys - prevent overflow in asymmetric_key_generate_id  Use check_add_overflow() to guard against potential integer overflows when adding the binary blob lengths and the size of an asymmetric_key_id structure and return ERR_PTR(-EOVERFLOW) accordingly. This prevents a possible buffer overflow when copying data from potentially malicious X.509 certificate fields that can be arbitrarily large, such as ASN.1 INTEGER serial numbers, issuer names, etc.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68727",
                        "url": "https://ubuntu.com/security/CVE-2025-68727",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: Fix uninit buffer allocated by __getname()  Fix uninit errors caused after buffer allocation given to 'de'; by initializing the buffer with zeroes. The fix was found by using KMSAN.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68728",
                        "url": "https://ubuntu.com/security/CVE-2025-68728",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: fix uninit memory after failed mi_read in mi_format_new  Fix a KMSAN un-init bug found by syzkaller.  ntfs_get_bh() expects a buffer from sb_getblk(), that buffer may not be uptodate. We do not bring the buffer uptodate before setting it as uptodate. If the buffer were to not be uptodate, it could mean adding a buffer with un-init data to the mi record. Attempting to load that record will trigger KMSAN.  Avoid this by setting the buffer as uptodate, if it’s not already, by overwriting it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68757",
                        "url": "https://ubuntu.com/security/CVE-2025-68757",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vgem-fence: Fix potential deadlock on release  A timer that expires a vgem fence automatically in 10 seconds is now released with timer_delete_sync() from fence->ops.release() called on last dma_fence_put().  In some scenarios, it can run in IRQ context, which is not safe unless TIMER_IRQSAFE is used.  One potentially risky scenario was demonstrated in Intel DRM CI trybot, BAT run on machine bat-adlp-6, while working on new IGT subtests syncobj_timeline@stress-* as user space replacements of some problematic test cases of a dma-fence-chain selftest [1].  [117.004338] ================================ [117.004340] WARNING: inconsistent lock state [117.004342] 6.17.0-rc7-CI_DRM_17270-g7644974e648c+ #1 Tainted: G S   U [117.004346] -------------------------------- [117.004347] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. [117.004349] swapper/0/0 [HC1[1]:SC1[1]:HE0:SE0] takes: [117.004352] ffff888138f86aa8 ((&fence->timer)){?.-.}-{0:0}, at: __timer_delete_sync+0x4b/0x190 [117.004361] {HARDIRQ-ON-W} state was registered at: [117.004363]   lock_acquire+0xc4/0x2e0 [117.004366]   call_timer_fn+0x80/0x2a0 [117.004368]   __run_timers+0x231/0x310 [117.004370]   run_timer_softirq+0x76/0xe0 [117.004372]   handle_softirqs+0xd4/0x4d0 [117.004375]   __irq_exit_rcu+0x13f/0x160 [117.004377]   irq_exit_rcu+0xe/0x20 [117.004379]   sysvec_apic_timer_interrupt+0xa0/0xc0 [117.004382]   asm_sysvec_apic_timer_interrupt+0x1b/0x20 [117.004385]   cpuidle_enter_state+0x12b/0x8a0 [117.004388]   cpuidle_enter+0x2e/0x50 [117.004393]   call_cpuidle+0x22/0x60 [117.004395]   do_idle+0x1fd/0x260 [117.004398]   cpu_startup_entry+0x29/0x30 [117.004401]   start_secondary+0x12d/0x160 [117.004404]   common_startup_64+0x13e/0x141 [117.004407] irq event stamp: 2282669 [117.004409] hardirqs last  enabled at (2282668): [<ffffffff8289db71>] _raw_spin_unlock_irqrestore+0x51/0x80 [117.004414] hardirqs last disabled at (2282669): [<ffffffff82882021>] sysvec_irq_work+0x11/0xc0 [117.004419] softirqs last  enabled at (2254702): [<ffffffff8289fd00>] __do_softirq+0x10/0x18 [117.004423] softirqs last disabled at (2254725): [<ffffffff813d4ddf>] __irq_exit_rcu+0x13f/0x160 [117.004426] other info that might help us debug this: [117.004429]  Possible unsafe locking scenario: [117.004432]        CPU0 [117.004433]        ---- [117.004434]   lock((&fence->timer)); [117.004436]   <Interrupt> [117.004438]     lock((&fence->timer)); [117.004440]  *** DEADLOCK *** [117.004443] 1 lock held by swapper/0/0: [117.004445]  #0: ffffc90000003d50 ((&fence->timer)){?.-.}-{0:0}, at: call_timer_fn+0x7a/0x2a0 [117.004450] stack backtrace: [117.004453] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G S   U             6.17.0-rc7-CI_DRM_17270-g7644974e648c+ #1 PREEMPT(voluntary) [117.004455] Tainted: [S]=CPU_OUT_OF_SPEC, [U]=USER [117.004455] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR4 RVP, BIOS RPLPFWI1.R00.4035.A00.2301200723 01/20/2023 [117.004456] Call Trace: [117.004456]  <IRQ> [117.004457]  dump_stack_lvl+0x91/0xf0 [117.004460]  dump_stack+0x10/0x20 [117.004461]  print_usage_bug.part.0+0x260/0x360 [117.004463]  mark_lock+0x76e/0x9c0 [117.004465]  ? register_lock_class+0x48/0x4a0 [117.004467]  __lock_acquire+0xbc3/0x2860 [117.004469]  lock_acquire+0xc4/0x2e0 [117.004470]  ? __timer_delete_sync+0x4b/0x190 [117.004472]  ? __timer_delete_sync+0x4b/0x190 [117.004473]  __timer_delete_sync+0x68/0x190 [117.004474]  ? __timer_delete_sync+0x4b/0x190 [117.004475]  timer_delete_sync+0x10/0x20 [117.004476]  vgem_fence_release+0x19/0x30 [vgem] [117.004478]  dma_fence_release+0xc1/0x3b0 [117.004480]  ? dma_fence_release+0xa1/0x3b0 [117.004481]  dma_fence_chain_release+0xe7/0x130 [117.004483]  dma_fence_release+0xc1/0x3b0 [117.004484]  ? _raw_spin_unlock_irqrestore+0x27/0x80 [117.004485]  dma_fence_chain_irq_work+0x59/0x80 [117.004487]  irq_work_single+0x75/0xa0 [117.004490]  irq_work_r ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68732",
                        "url": "https://ubuntu.com/security/CVE-2025-68732",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gpu: host1x: Fix race in syncpt alloc/free  Fix race condition between host1x_syncpt_alloc() and host1x_syncpt_put() by using kref_put_mutex() instead of kref_put() + manual mutex locking.  This ensures no thread can acquire the syncpt_mutex after the refcount drops to zero but before syncpt_release acquires it. This prevents races where syncpoints could be allocated while still being cleaned up from a previous release.  Remove explicit mutex locking in syncpt_release as kref_put_mutex() handles this atomically.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68733",
                        "url": "https://ubuntu.com/security/CVE-2025-68733",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smack: fix bug: unprivileged task can create labels  If an unprivileged task is allowed to relabel itself (/smack/relabel-self is not empty), it can freely create new labels by writing their names into own /proc/PID/attr/smack/current  This occurs because do_setattr() imports the provided label in advance, before checking \"relabel-self\" list.  This change ensures that the \"relabel-self\" list is checked before importing the label.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68254",
                        "url": "https://ubuntu.com/security/CVE-2025-68254",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix out-of-bounds read in OnBeacon ESR IE parsing  The Extended Supported Rates (ESR) IE handling in OnBeacon accessed *(p + 1 + ielen) and *(p + 2 + ielen) without verifying that these offsets lie within the received frame buffer. A malformed beacon with an ESR IE positioned at the end of the buffer could cause an out-of-bounds read, potentially triggering a kernel panic.  Add a boundary check to ensure that the ESR IE body and the subsequent bytes are within the limits of the frame before attempting to access them.  This prevents OOB reads caused by malformed beacon frames.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68255",
                        "url": "https://ubuntu.com/security/CVE-2025-68255",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix stack buffer overflow in OnAssocReq IE parsing  The Supported Rates IE length from an incoming Association Request frame was used directly as the memcpy() length when copying into a fixed-size 16-byte stack buffer (supportRate). A malicious station can advertise an IE length larger than 16 bytes, causing a stack buffer overflow.  Clamp ie_len to the buffer size before copying the Supported Rates IE, and correct the bounds check when merging Extended Supported Rates to prevent a second potential overflow.  This prevents kernel stack corruption triggered by malformed association requests.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68257",
                        "url": "https://ubuntu.com/security/CVE-2025-68257",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: check device's attached status in compat ioctls  Syzbot identified an issue [1] that crashes kernel, seemingly due to unexistent callback dev->get_valid_routes(). By all means, this should not occur as said callback must always be set to get_zero_valid_routes() in __comedi_device_postconfig().  As the crash seems to appear exclusively in i386 kernels, at least, judging from [1] reports, the blame lies with compat versions of standard IOCTL handlers. Several of them are modified and do not use comedi_unlocked_ioctl(). While functionality of these ioctls essentially copy their original versions, they do not have required sanity check for device's attached status. This, in turn, leads to a possibility of calling select IOCTLs on a device that has not been properly setup, even via COMEDI_DEVCONFIG.  Doing so on unconfigured devices means that several crucial steps are missed, for instance, specifying dev->get_valid_routes() callback.  Fix this somewhat crudely by ensuring device's attached status before performing any ioctls, improving logic consistency between modern and compat functions.  [1] Syzbot report: BUG: kernel NULL pointer dereference, address: 0000000000000000 ... CR2: ffffffffffffffd6 CR3: 000000006c717000 CR4: 0000000000352ef0 Call Trace:  <TASK>  get_valid_routes drivers/comedi/comedi_fops.c:1322 [inline]  parse_insn+0x78c/0x1970 drivers/comedi/comedi_fops.c:1401  do_insnlist_ioctl+0x272/0x700 drivers/comedi/comedi_fops.c:1594  compat_insnlist drivers/comedi/comedi_fops.c:3208 [inline]  comedi_compat_ioctl+0x810/0x990 drivers/comedi/comedi_fops.c:3273  __do_compat_sys_ioctl fs/ioctl.c:695 [inline]  __se_compat_sys_ioctl fs/ioctl.c:638 [inline]  __ia32_compat_sys_ioctl+0x242/0x370 fs/ioctl.c:638  do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline] ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68258",
                        "url": "https://ubuntu.com/security/CVE-2025-68258",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: multiq3: sanitize config options in multiq3_attach()  Syzbot identified an issue [1] in multiq3_attach() that induces a task timeout due to open() or COMEDI_DEVCONFIG ioctl operations, specifically, in the case of multiq3 driver.  This problem arose when syzkaller managed to craft weird configuration options used to specify the number of channels in encoder subdevice. If a particularly great number is passed to s->n_chan in multiq3_attach() via it->options[2], then multiple calls to multiq3_encoder_reset() at the end of driver-specific attach() method will be running for minutes, thus blocking tasks and affected devices as well.  While this issue is most likely not too dangerous for real-life devices, it still makes sense to sanitize configuration inputs. Enable a sensible limit on the number of encoder chips (4 chips max, each with 2 channels) to stop this behaviour from manifesting.  [1] Syzbot crash: INFO: task syz.2.19:6067 blocked for more than 143 seconds. ... Call Trace:  <TASK>  context_switch kernel/sched/core.c:5254 [inline]  __schedule+0x17c4/0x4d60 kernel/sched/core.c:6862  __schedule_loop kernel/sched/core.c:6944 [inline]  schedule+0x165/0x360 kernel/sched/core.c:6959  schedule_preempt_disabled+0x13/0x30 kernel/sched/core.c:7016  __mutex_lock_common kernel/locking/mutex.c:676 [inline]  __mutex_lock+0x7e6/0x1350 kernel/locking/mutex.c:760  comedi_open+0xc0/0x590 drivers/comedi/comedi_fops.c:2868  chrdev_open+0x4cc/0x5e0 fs/char_dev.c:414  do_dentry_open+0x953/0x13f0 fs/open.c:965  vfs_open+0x3b/0x340 fs/open.c:1097 ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68332",
                        "url": "https://ubuntu.com/security/CVE-2025-68332",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: c6xdigio: Fix invalid PNP driver unregistration  The Comedi low-level driver \"c6xdigio\" seems to be for a parallel port connected device.  When the Comedi core calls the driver's Comedi \"attach\" handler `c6xdigio_attach()` to configure a Comedi to use this driver, it tries to enable the parallel port PNP resources by registering a PNP driver with `pnp_register_driver()`, but ignores the return value.  (The `struct pnp_driver` it uses has only the `name` and `id_table` members filled in.)  The driver's Comedi \"detach\" handler `c6xdigio_detach()` unconditionally unregisters the PNP driver with `pnp_unregister_driver()`.  It is possible for `c6xdigio_attach()` to return an error before it calls `pnp_register_driver()` and it is possible for the call to `pnp_register_driver()` to return an error (that is ignored).  In both cases, the driver should not be calling `pnp_unregister_driver()` as it does in `c6xdigio_detach()`.  (Note that `c6xdigio_detach()` will be called by the Comedi core if `c6xdigio_attach()` returns an error, or if the Comedi core decides to detach the Comedi device from the driver for some other reason.)  The unconditional call to `pnp_unregister_driver()` without a previous successful call to `pnp_register_driver()` will cause `driver_unregister()` to issue a warning \"Unexpected driver unregister!\".  This was detected by Syzbot [1].  Also, the PNP driver registration and unregistration should be done at module init and exit time, respectively, not when attaching or detaching Comedi devices to the driver.  (There might be more than one Comedi device being attached to the driver, although that is unlikely.)  Change the driver to do the PNP driver registration at module init time, and the unregistration at module exit time.  Since `c6xdigio_detach()` now only calls `comedi_legacy_detach()`, remove the function and change the Comedi driver \"detach\" handler to `comedi_legacy_detach`.  ------------------------------------------- [1] Syzbot sample crash report: Unexpected driver unregister! WARNING: CPU: 0 PID: 5970 at drivers/base/driver.c:273 driver_unregister drivers/base/driver.c:273 [inline] WARNING: CPU: 0 PID: 5970 at drivers/base/driver.c:273 driver_unregister+0x90/0xb0 drivers/base/driver.c:270 Modules linked in: CPU: 0 UID: 0 PID: 5970 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 RIP: 0010:driver_unregister drivers/base/driver.c:273 [inline] RIP: 0010:driver_unregister+0x90/0xb0 drivers/base/driver.c:270 Code: 48 89 ef e8 c2 e6 82 fc 48 89 df e8 3a 93 ff ff 5b 5d e9 c3 6d d9 fb e8 be 6d d9 fb 90 48 c7 c7 e0 f8 1f 8c e8 51 a2 97 fb 90 <0f> 0b 90 90 5b 5d e9 a5 6d d9 fb e8 e0 f4 41 fc eb 94 e8 d9 f4 41 RSP: 0018:ffffc9000373f9a0 EFLAGS: 00010282 RAX: 0000000000000000 RBX: ffffffff8ff24720 RCX: ffffffff817b6ee8 RDX: ffff88807c932480 RSI: ffffffff817b6ef5 RDI: 0000000000000001 RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000001 R11: 0000000000000001 R12: ffffffff8ff24660 R13: dffffc0000000000 R14: 0000000000000000 R15: ffff88814cca0000 FS:  000055556dab1500(0000) GS:ffff8881249d9000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000055f77f285cd0 CR3: 000000007d871000 CR4: 00000000003526f0 Call Trace:  <TASK>  comedi_device_detach_locked+0x12f/0xa50 drivers/comedi/drivers.c:207  comedi_device_detach+0x67/0xb0 drivers/comedi/drivers.c:215  comedi_device_attach+0x43d/0x900 drivers/comedi/drivers.c:1011  do_devconfig_ioctl+0x1b1/0x710 drivers/comedi/comedi_fops.c:872  comedi_unlocked_ioctl+0x165d/0x2f00 drivers/comedi/comedi_fops.c:2178  vfs_ioctl fs/ioctl.c:51 [inline]  __do_sys_ioctl fs/ioctl.c:597 [inline]  __se_sys_ioctl fs/ioctl.c:583 [inline]  __x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_sys ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68266",
                        "url": "https://ubuntu.com/security/CVE-2025-68266",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bfs: Reconstruct file type when loading from disk  syzbot is reporting that S_IFMT bits of inode->i_mode can become bogus when the S_IFMT bits of the 32bits \"mode\" field loaded from disk are corrupted or when the 32bits \"attributes\" field loaded from disk are corrupted.  A documentation says that BFS uses only lower 9 bits of the \"mode\" field. But I can't find an explicit explanation that the unused upper 23 bits (especially, the S_IFMT bits) are initialized with 0.  Therefore, ignore the S_IFMT bits of the \"mode\" field loaded from disk. Also, verify that the value of the \"attributes\" field loaded from disk is either BFS_VREG or BFS_VDIR (because BFS supports only regular files and the root directory).",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68335",
                        "url": "https://ubuntu.com/security/CVE-2025-68335",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: pcl818: fix null-ptr-deref in pcl818_ai_cancel()  Syzbot identified an issue [1] in pcl818_ai_cancel(), which stems from the fact that in case of early device detach via pcl818_detach(), subdevice dev->read_subdev may not have initialized its pointer to &struct comedi_async as intended. Thus, any such dereferencing of &s->async->cmd will lead to general protection fault and kernel crash.  Mitigate this problem by removing a call to pcl818_ai_cancel() from pcl818_detach() altogether. This way, if the subdevice setups its support for async commands, everything async-related will be handled via subdevice's own ->cancel() function in comedi_device_detach_locked() even before pcl818_detach(). If no support for asynchronous commands is provided, there is no need to cancel anything either.  [1] Syzbot crash: Oops: general protection fault, probably for non-canonical address 0xdffffc0000000005: 0000 [#1] SMP KASAN PTI KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f] CPU: 1 UID: 0 PID: 6050 Comm: syz.0.18 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025 RIP: 0010:pcl818_ai_cancel+0x69/0x3f0 drivers/comedi/drivers/pcl818.c:762 ... Call Trace:  <TASK>  pcl818_detach+0x66/0xd0 drivers/comedi/drivers/pcl818.c:1115  comedi_device_detach_locked+0x178/0x750 drivers/comedi/drivers.c:207  do_devconfig_ioctl drivers/comedi/comedi_fops.c:848 [inline]  comedi_unlocked_ioctl+0xcde/0x1020 drivers/comedi/comedi_fops.c:2178  vfs_ioctl fs/ioctl.c:51 [inline]  __do_sys_ioctl fs/ioctl.c:597 [inline] ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68261",
                        "url": "https://ubuntu.com/security/CVE-2025-68261",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock()  Fix a race between inline data destruction and block mapping.  The function ext4_destroy_inline_data_nolock() changes the inode data layout by clearing EXT4_INODE_INLINE_DATA and setting EXT4_INODE_EXTENTS. At the same time, another thread may execute ext4_map_blocks(), which tests EXT4_INODE_EXTENTS to decide whether to call ext4_ext_map_blocks() or ext4_ind_map_blocks().  Without i_data_sem protection, ext4_ind_map_blocks() may receive inode with EXT4_INODE_EXTENTS flag and triggering assert.  kernel BUG at fs/ext4/indirect.c:546! EXT4-fs (loop2): unmounting filesystem. invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:ext4_ind_map_blocks.cold+0x2b/0x5a fs/ext4/indirect.c:546  Call Trace:  <TASK>  ext4_map_blocks+0xb9b/0x16f0 fs/ext4/inode.c:681  _ext4_get_block+0x242/0x590 fs/ext4/inode.c:822  ext4_block_write_begin+0x48b/0x12c0 fs/ext4/inode.c:1124  ext4_write_begin+0x598/0xef0 fs/ext4/inode.c:1255  ext4_da_write_begin+0x21e/0x9c0 fs/ext4/inode.c:3000  generic_perform_write+0x259/0x5d0 mm/filemap.c:3846  ext4_buffered_write_iter+0x15b/0x470 fs/ext4/file.c:285  ext4_file_write_iter+0x8e0/0x17f0 fs/ext4/file.c:679  call_write_iter include/linux/fs.h:2271 [inline]  do_iter_readv_writev+0x212/0x3c0 fs/read_write.c:735  do_iter_write+0x186/0x710 fs/read_write.c:861  vfs_iter_write+0x70/0xa0 fs/read_write.c:902  iter_file_splice_write+0x73b/0xc90 fs/splice.c:685  do_splice_from fs/splice.c:763 [inline]  direct_splice_actor+0x10f/0x170 fs/splice.c:950  splice_direct_to_actor+0x33a/0xa10 fs/splice.c:896  do_splice_direct+0x1a9/0x280 fs/splice.c:1002  do_sendfile+0xb13/0x12c0 fs/read_write.c:1255  __do_sys_sendfile64 fs/read_write.c:1323 [inline]  __se_sys_sendfile64 fs/read_write.c:1309 [inline]  __x64_sys_sendfile64+0x1cf/0x210 fs/read_write.c:1309  do_syscall_x64 arch/x86/entry/common.c:51 [inline]  do_syscall_64+0x35/0x80 arch/x86/entry/common.c:81  entry_SYSCALL_64_after_hwframe+0x6e/0xd8",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68336",
                        "url": "https://ubuntu.com/security/CVE-2025-68336",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  locking/spinlock/debug: Fix data-race in do_raw_write_lock  KCSAN reports:  BUG: KCSAN: data-race in do_raw_write_lock / do_raw_write_lock  write (marked) to 0xffff800009cf504c of 4 bytes by task 1102 on cpu 1:  do_raw_write_lock+0x120/0x204  _raw_write_lock_irq  do_exit  call_usermodehelper_exec_async  ret_from_fork  read to 0xffff800009cf504c of 4 bytes by task 1103 on cpu 0:  do_raw_write_lock+0x88/0x204  _raw_write_lock_irq  do_exit  call_usermodehelper_exec_async  ret_from_fork  value changed: 0xffffffff -> 0x00000001  Reported by Kernel Concurrency Sanitizer on: CPU: 0 PID: 1103 Comm: kworker/u4:1 6.1.111  Commit 1a365e822372 (\"locking/spinlock/debug: Fix various data races\") has adressed most of these races, but seems to be not consistent/not complete.  >From do_raw_write_lock() only debug_write_lock_after() part has been converted to WRITE_ONCE(), but not debug_write_lock_before() part. Do it now.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68264",
                        "url": "https://ubuntu.com/security/CVE-2025-68264",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: refresh inline data size before write operations  The cached ei->i_inline_size can become stale between the initial size check and when ext4_update_inline_data()/ext4_create_inline_data() use it. Although ext4_get_max_inline_size() reads the correct value at the time of the check, concurrent xattr operations can modify i_inline_size before ext4_write_lock_xattr() is acquired.  This causes ext4_update_inline_data() and ext4_create_inline_data() to work with stale capacity values, leading to a BUG_ON() crash in ext4_write_inline_data():    kernel BUG at fs/ext4/inline.c:1331!   BUG_ON(pos + len > EXT4_I(inode)->i_inline_size);  The race window: 1. ext4_get_max_inline_size() reads i_inline_size = 60 (correct) 2. Size check passes for 50-byte write 3. [Another thread adds xattr, i_inline_size changes to 40] 4. ext4_write_lock_xattr() acquires lock 5. ext4_update_inline_data() uses stale i_inline_size = 60 6. Attempts to write 50 bytes but only 40 bytes actually available 7. BUG_ON() triggers  Fix this by recalculating i_inline_size via ext4_find_inline_data_nolock() immediately after acquiring xattr_sem. This ensures ext4_update_inline_data() and ext4_create_inline_data() work with current values that are protected from concurrent modifications.  This is similar to commit a54c4613dac1 (\"ext4: fix race writing to an inline_data file while its xattrs are changing\") which fixed i_inline_off staleness. This patch addresses the related i_inline_size staleness issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68337",
                        "url": "https://ubuntu.com/security/CVE-2025-68337",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system corrupted  There's issue when file system corrupted: ------------[ cut here ]------------ kernel BUG at fs/jbd2/transaction.c:1289! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 5 UID: 0 PID: 2031 Comm: mkdir Not tainted 6.18.0-rc1-next RIP: 0010:jbd2_journal_get_create_access+0x3b6/0x4d0 RSP: 0018:ffff888117aafa30 EFLAGS: 00010202 RAX: 0000000000000000 RBX: ffff88811a86b000 RCX: ffffffff89a63534 RDX: 1ffff110200ec602 RSI: 0000000000000004 RDI: ffff888100763010 RBP: ffff888100763000 R08: 0000000000000001 R09: ffff888100763028 R10: 0000000000000003 R11: 0000000000000000 R12: 0000000000000000 R13: ffff88812c432000 R14: ffff88812c608000 R15: ffff888120bfc000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f91d6970c99 CR3: 00000001159c4000 CR4: 00000000000006f0 Call Trace:  <TASK>  __ext4_journal_get_create_access+0x42/0x170  ext4_getblk+0x319/0x6f0  ext4_bread+0x11/0x100  ext4_append+0x1e6/0x4a0  ext4_init_new_dir+0x145/0x1d0  ext4_mkdir+0x326/0x920  vfs_mkdir+0x45c/0x740  do_mkdirat+0x234/0x2f0  __x64_sys_mkdir+0xd6/0x120  do_syscall_64+0x5f/0xfa0  entry_SYSCALL_64_after_hwframe+0x76/0x7e  The above issue occurs with us in errors=continue mode when accompanied by storage failures. There have been many inconsistencies in the file system data. In the case of file system data inconsistency, for example, if the block bitmap of a referenced block is not set, it can lead to the situation where a block being committed is allocated and used again. As a result, the following condition will not be satisfied then trigger BUG_ON. Of course, it is entirely possible to construct a problematic image that can trigger this BUG_ON through specific operations. In fact, I have constructed such an image and easily reproduced this issue. Therefore, J_ASSERT() holds true only under ideal conditions, but it may not necessarily be satisfied in exceptional scenarios. Using J_ASSERT() directly in abnormal situations would cause the system to crash, which is clearly not what we want. So here we directly trigger a JBD abort instead of immediately invoking BUG_ON.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-47666",
                        "url": "https://ubuntu.com/security/CVE-2024-47666",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: pm80xx: Set phy->enable_completion only when we wait for it  pm8001_phy_control() populates the enable_completion pointer with a stack address, sends a PHY_LINK_RESET / PHY_HARD_RESET, waits 300 ms, and returns. The problem arises when a phy control response comes late.  After 300 ms the pm8001_phy_control() function returns and the passed enable_completion stack address is no longer valid. Late phy control response invokes complete() on a dangling enable_completion pointer which leads to a kernel crash.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-10-09 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68327",
                        "url": "https://ubuntu.com/security/CVE-2025-68327",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: renesas_usbhs: Fix synchronous external abort on unbind  A synchronous external abort occurs on the Renesas RZ/G3S SoC if unbind is executed after the configuration sequence described above:  modprobe usb_f_ecm modprobe libcomposite modprobe configfs cd /sys/kernel/config/usb_gadget mkdir -p g1 cd g1 echo \"0x1d6b\" > idVendor echo \"0x0104\" > idProduct mkdir -p strings/0x409 echo \"0123456789\" > strings/0x409/serialnumber echo \"Renesas.\" > strings/0x409/manufacturer echo \"Ethernet Gadget\" > strings/0x409/product mkdir -p functions/ecm.usb0 mkdir -p configs/c.1 mkdir -p configs/c.1/strings/0x409 echo \"ECM\" > configs/c.1/strings/0x409/configuration  if [ ! -L configs/c.1/ecm.usb0 ]; then         ln -s functions/ecm.usb0 configs/c.1 fi  echo 11e20000.usb > UDC echo 11e20000.usb > /sys/bus/platform/drivers/renesas_usbhs/unbind  The displayed trace is as follows:   Internal error: synchronous external abort: 0000000096000010 [#1] SMP  CPU: 0 UID: 0 PID: 188 Comm: sh Tainted: G M 6.17.0-rc7-next-20250922-00010-g41050493b2bd #55 PREEMPT  Tainted: [M]=MACHINE_CHECK  Hardware name: Renesas SMARC EVK version 2 based on r9a08g045s33 (DT)  pstate: 604000c5 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)  pc : usbhs_sys_function_pullup+0x10/0x40 [renesas_usbhs]  lr : usbhsg_update_pullup+0x3c/0x68 [renesas_usbhs]  sp : ffff8000838b3920  x29: ffff8000838b3920 x28: ffff00000d585780 x27: 0000000000000000  x26: 0000000000000000 x25: 0000000000000000 x24: ffff00000c3e3810  x23: ffff00000d5e5c80 x22: ffff00000d5e5d40 x21: 0000000000000000  x20: 0000000000000000 x19: ffff00000d5e5c80 x18: 0000000000000020  x17: 2e30303230316531 x16: 312d7968703a7968 x15: 3d454d414e5f4344  x14: 000000000000002c x13: 0000000000000000 x12: 0000000000000000  x11: ffff00000f358f38 x10: ffff00000f358db0 x9 : ffff00000b41f418  x8 : 0101010101010101 x7 : 7f7f7f7f7f7f7f7f x6 : fefefeff6364626d  x5 : 8080808000000000 x4 : 000000004b5ccb9d x3 : 0000000000000000  x2 : 0000000000000000 x1 : ffff800083790000 x0 : ffff00000d5e5c80  Call trace:  usbhs_sys_function_pullup+0x10/0x40 [renesas_usbhs] (P)  usbhsg_pullup+0x4c/0x7c [renesas_usbhs]  usb_gadget_disconnect_locked+0x48/0xd4  gadget_unbind_driver+0x44/0x114  device_remove+0x4c/0x80  device_release_driver_internal+0x1c8/0x224  device_release_driver+0x18/0x24  bus_remove_device+0xcc/0x10c  device_del+0x14c/0x404  usb_del_gadget+0x88/0xc0  usb_del_gadget_udc+0x18/0x30  usbhs_mod_gadget_remove+0x24/0x44 [renesas_usbhs]  usbhs_mod_remove+0x20/0x30 [renesas_usbhs]  usbhs_remove+0x98/0xdc [renesas_usbhs]  platform_remove+0x20/0x30  device_remove+0x4c/0x80  device_release_driver_internal+0x1c8/0x224  device_driver_detach+0x18/0x24  unbind_store+0xb4/0xb8  drv_attr_store+0x24/0x38  sysfs_kf_write+0x7c/0x94  kernfs_fop_write_iter+0x128/0x1b8  vfs_write+0x2ac/0x350  ksys_write+0x68/0xfc  __arm64_sys_write+0x1c/0x28  invoke_syscall+0x48/0x110  el0_svc_common.constprop.0+0xc0/0xe0  do_el0_svc+0x1c/0x28  el0_svc+0x34/0xf0  el0t_64_sync_handler+0xa0/0xe4  el0t_64_sync+0x198/0x19c  Code: 7100003f 1a9f07e1 531c6c22 f9400001 (79400021)  ---[ end trace 0000000000000000 ]---  note: sh[188] exited with irqs disabled  note: sh[188] exited with preempt_count 1  The issue occurs because usbhs_sys_function_pullup(), which accesses the IP registers, is executed after the USBHS clocks have been disabled. The problem is reproducible on the Renesas RZ/G3S SoC starting with the addition of module stop in the clock enable/disable APIs. With module stop functionality enabled, a bus error is expected if a master accesses a module whose clock has been stopped and module stop activated.  Disable the IP clocks at the end of remove.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68295",
                        "url": "https://ubuntu.com/security/CVE-2025-68295",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb: client: fix memory leak in cifs_construct_tcon()  When having a multiuser mount with domain= specified and using cifscreds, cifs_set_cifscreds() will end up setting @ctx->domainname, so it needs to be freed before leaving cifs_construct_tcon().  This fixes the following memory leak reported by kmemleak:    mount.cifs //srv/share /mnt -o domain=ZELDA,multiuser,...   su - testuser   cifscreds add -d ZELDA -u testuser   ...   ls /mnt/1   ...   umount /mnt   echo scan > /sys/kernel/debug/kmemleak   cat /sys/kernel/debug/kmemleak   unreferenced object 0xffff8881203c3f08 (size 8):     comm \"ls\", pid 5060, jiffies 4307222943     hex dump (first 8 bytes):       5a 45 4c 44 41 00 cc cc                          ZELDA...     backtrace (crc d109a8cf):       __kmalloc_node_track_caller_noprof+0x572/0x710       kstrdup+0x3a/0x70       cifs_sb_tlink+0x1209/0x1770 [cifs]       cifs_get_fattr+0xe1/0xf50 [cifs]       cifs_get_inode_info+0xb5/0x240 [cifs]       cifs_revalidate_dentry_attr+0x2d1/0x470 [cifs]       cifs_getattr+0x28e/0x450 [cifs]       vfs_getattr_nosec+0x126/0x180       vfs_statx+0xf6/0x220       do_statx+0xab/0x110       __x64_sys_statx+0xd5/0x130       do_syscall_64+0xbb/0x380       entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68227",
                        "url": "https://ubuntu.com/security/CVE-2025-68227",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: Fix proto fallback detection with BPF  The sockmap feature allows bpf syscall from userspace, or based on bpf sockops, replacing the sk_prot of sockets during protocol stack processing with sockmap's custom read/write interfaces. ''' tcp_rcv_state_process()   syn_recv_sock()/subflow_syn_recv_sock()     tcp_init_transfer(BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB)       bpf_skops_established       <== sockops         bpf_sock_map_update(sk)   <== call bpf helper           tcp_bpf_update_proto()  <== update sk_prot '''  When the server has MPTCP enabled but the client sends a TCP SYN without MPTCP, subflow_syn_recv_sock() performs a fallback on the subflow, replacing the subflow sk's sk_prot with the native sk_prot. ''' subflow_syn_recv_sock()   subflow_ulp_fallback()     subflow_drop_ctx()       mptcp_subflow_ops_undo_override() '''  Then, this subflow can be normally used by sockmap, which replaces the native sk_prot with sockmap's custom sk_prot. The issue occurs when the user executes accept::mptcp_stream_accept::mptcp_fallback_tcp_ops(). Here, it uses sk->sk_prot to compare with the native sk_prot, but this is incorrect when sockmap is used, as we may incorrectly set sk->sk_socket->ops.  This fix uses the more generic sk_family for the comparison instead.  Additionally, this also prevents a WARNING from occurring:  result from ./scripts/decode_stacktrace.sh: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 337 at net/mptcp/protocol.c:68 mptcp_stream_accept \\ (net/mptcp/protocol.c:4005) Modules linked in: ...  PKRU: 55555554 Call Trace: <TASK> do_accept (net/socket.c:1989) __sys_accept4 (net/socket.c:2028 net/socket.c:2057) __x64_sys_accept (net/socket.c:2067) x64_sys_call (arch/x86/entry/syscall_64.c:41) do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) RIP: 0033:0x7f87ac92b83d  ---[ end trace 0000000000000000 ]---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68284",
                        "url": "https://ubuntu.com/security/CVE-2025-68284",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: prevent potential out-of-bounds writes in handle_auth_session_key()  The len field originates from untrusted network packets. Boundary checks have been added to prevent potential out-of-bounds writes when decrypting the connection secret or processing service tickets.  [ idryomov: changelog ]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68285",
                        "url": "https://ubuntu.com/security/CVE-2025-68285",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: fix potential use-after-free in have_mon_and_osd_map()  The wait loop in __ceph_open_session() can race with the client receiving a new monmap or osdmap shortly after the initial map is received.  Both ceph_monc_handle_map() and handle_one_map() install a new map immediately after freeing the old one      kfree(monc->monmap);     monc->monmap = monmap;      ceph_osdmap_destroy(osdc->osdmap);     osdc->osdmap = newmap;  under client->monc.mutex and client->osdc.lock respectively, but because neither is taken in have_mon_and_osd_map() it's possible for client->monc.monmap->epoch and client->osdc.osdmap->epoch arms in      client->monc.monmap && client->monc.monmap->epoch &&         client->osdc.osdmap && client->osdc.osdmap->epoch;  condition to dereference an already freed map.  This happens to be reproducible with generic/395 and generic/397 with KASAN enabled:      BUG: KASAN: slab-use-after-free in have_mon_and_osd_map+0x56/0x70     Read of size 4 at addr ffff88811012d810 by task mount.ceph/13305     CPU: 2 UID: 0 PID: 13305 Comm: mount.ceph Not tainted 6.14.0-rc2-build2+ #1266     ...     Call Trace:     <TASK>     have_mon_and_osd_map+0x56/0x70     ceph_open_session+0x182/0x290     ceph_get_tree+0x333/0x680     vfs_get_tree+0x49/0x180     do_new_mount+0x1a3/0x2d0     path_mount+0x6dd/0x730     do_mount+0x99/0xe0     __do_sys_mount+0x141/0x180     do_syscall_64+0x9f/0x100     entry_SYSCALL_64_after_hwframe+0x76/0x7e     </TASK>      Allocated by task 13305:     ceph_osdmap_alloc+0x16/0x130     ceph_osdc_init+0x27a/0x4c0     ceph_create_client+0x153/0x190     create_fs_client+0x50/0x2a0     ceph_get_tree+0xff/0x680     vfs_get_tree+0x49/0x180     do_new_mount+0x1a3/0x2d0     path_mount+0x6dd/0x730     do_mount+0x99/0xe0     __do_sys_mount+0x141/0x180     do_syscall_64+0x9f/0x100     entry_SYSCALL_64_after_hwframe+0x76/0x7e      Freed by task 9475:     kfree+0x212/0x290     handle_one_map+0x23c/0x3b0     ceph_osdc_handle_map+0x3c9/0x590     mon_dispatch+0x655/0x6f0     ceph_con_process_message+0xc3/0xe0     ceph_con_v1_try_read+0x614/0x760     ceph_con_workfn+0x2de/0x650     process_one_work+0x486/0x7c0     process_scheduled_works+0x73/0x90     worker_thread+0x1c8/0x2a0     kthread+0x2ec/0x300     ret_from_fork+0x24/0x40     ret_from_fork_asm+0x1a/0x30  Rewrite the wait loop to check the above condition directly with client->monc.mutex and client->osdc.lock taken as appropriate.  While at it, improve the timeout handling (previously mount_timeout could be exceeded in case wait_event_interruptible_timeout() slept more than once) and access client->auth_err under client->monc.mutex to match how it's set in finish_auth().  monmap_show() and osdmap_show() now take the respective lock before accessing the map as well.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68286",
                        "url": "https://ubuntu.com/security/CVE-2025-68286",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/display: Check NULL before accessing  [WHAT] IGT kms_cursor_legacy's long-nonblocking-modeset-vs-cursor-atomic fails with NULL pointer dereference. This can be reproduced with both an eDP panel and a DP monitors connected.   BUG: kernel NULL pointer dereference, address: 0000000000000000  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page  PGD 0 P4D 0  Oops: Oops: 0000 [#1] SMP NOPTI  CPU: 13 UID: 0 PID: 2960 Comm: kms_cursor_lega Not tainted 6.16.0-99-custom #8 PREEMPT(voluntary)  Hardware name: AMD ........  RIP: 0010:dc_stream_get_scanoutpos+0x34/0x130 [amdgpu]  Code: 57 4d 89 c7 41 56 49 89 ce 41 55 49 89 d5 41 54 49  89 fc 53 48 83 ec 18 48 8b 87 a0 64 00 00 48 89 75 d0 48 c7 c6 e0 41 30  c2 <48> 8b 38 48 8b 9f 68 06 00 00 e8 8d d7 fd ff 31 c0 48 81 c3 e0 02  RSP: 0018:ffffd0f3c2bd7608 EFLAGS: 00010292  RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffd0f3c2bd7668  RDX: ffffd0f3c2bd7664 RSI: ffffffffc23041e0 RDI: ffff8b32494b8000  RBP: ffffd0f3c2bd7648 R08: ffffd0f3c2bd766c R09: ffffd0f3c2bd7760  R10: ffffd0f3c2bd7820 R11: 0000000000000000 R12: ffff8b32494b8000  R13: ffffd0f3c2bd7664 R14: ffffd0f3c2bd7668 R15: ffffd0f3c2bd766c  FS:  000071f631b68700(0000) GS:ffff8b399f114000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000000 CR3: 00000001b8105000 CR4: 0000000000f50ef0  PKRU: 55555554  Call Trace:  <TASK>  dm_crtc_get_scanoutpos+0xd7/0x180 [amdgpu]  amdgpu_display_get_crtc_scanoutpos+0x86/0x1c0 [amdgpu]  ? __pfx_amdgpu_crtc_get_scanout_position+0x10/0x10[amdgpu]  amdgpu_crtc_get_scanout_position+0x27/0x50 [amdgpu]  drm_crtc_vblank_helper_get_vblank_timestamp_internal+0xf7/0x400  drm_crtc_vblank_helper_get_vblank_timestamp+0x1c/0x30  drm_crtc_get_last_vbltimestamp+0x55/0x90  drm_crtc_next_vblank_start+0x45/0xa0  drm_atomic_helper_wait_for_fences+0x81/0x1f0  ...  (cherry picked from commit 621e55f1919640acab25383362b96e65f2baea3c)",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68287",
                        "url": "https://ubuntu.com/security/CVE-2025-68287",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: dwc3: Fix race condition between concurrent dwc3_remove_requests() call paths  This patch addresses a race condition caused by unsynchronized execution of multiple call paths invoking `dwc3_remove_requests()`, leading to premature freeing of USB requests and subsequent crashes.  Three distinct execution paths interact with `dwc3_remove_requests()`: Path 1: Triggered via `dwc3_gadget_reset_interrupt()` during USB reset handling. The call stack includes: - `dwc3_ep0_reset_state()` - `dwc3_ep0_stall_and_restart()` - `dwc3_ep0_out_start()` - `dwc3_remove_requests()` - `dwc3_gadget_del_and_unmap_request()`  Path 2: Also initiated from `dwc3_gadget_reset_interrupt()`, but through `dwc3_stop_active_transfers()`. The call stack includes: - `dwc3_stop_active_transfers()` - `dwc3_remove_requests()` - `dwc3_gadget_del_and_unmap_request()`  Path 3: Occurs independently during `adb root` execution, which triggers USB function unbind and bind operations. The sequence includes: - `gserial_disconnect()` - `usb_ep_disable()` - `dwc3_gadget_ep_disable()` - `dwc3_remove_requests()` with `-ESHUTDOWN` status  Path 3 operates asynchronously and lacks synchronization with Paths 1 and 2. When Path 3 completes, it disables endpoints and frees 'out' requests. If Paths 1 or 2 are still processing these requests, accessing freed memory leads to a crash due to use-after-free conditions.  To fix this added check for request completion and skip processing if already completed and added the request status for ep0 while queue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68331",
                        "url": "https://ubuntu.com/security/CVE-2025-68331",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: uas: fix urb unmapping issue when the uas device is remove during ongoing data transfer  When a UAS device is unplugged during data transfer, there is a probability of a system panic occurring. The root cause is an access to an invalid memory address during URB callback handling. Specifically, this happens when the dma_direct_unmap_sg() function is called within the usb_hcd_unmap_urb_for_dma() interface, but the sg->dma_address field is 0 and the sg data structure has already been freed.  The SCSI driver sends transfer commands by invoking uas_queuecommand_lck() in uas.c, using the uas_submit_urbs() function to submit requests to USB. Within the uas_submit_urbs() implementation, three URBs (sense_urb, data_urb, and cmd_urb) are sequentially submitted. Device removal may occur at any point during uas_submit_urbs execution, which may result in URB submission failure. However, some URBs might have been successfully submitted before the failure, and uas_submit_urbs will return the -ENODEV error code in this case. The current error handling directly calls scsi_done(). In the SCSI driver, this eventually triggers scsi_complete() to invoke scsi_end_request() for releasing the sgtable. The successfully submitted URBs, when being unlinked to giveback, call usb_hcd_unmap_urb_for_dma() in hcd.c, leading to exceptions during sg unmapping operations since the sg data structure has already been freed.  This patch modifies the error condition check in the uas_submit_urbs() function. When a UAS device is removed but one or more URBs have already been successfully submitted to USB, it avoids immediately invoking scsi_done() and save the cmnd to devinfo->cmnd array. If the successfully submitted URBs is completed before devinfo->resetting being set, then the scsi_done() function will be called within uas_try_complete() after all pending URB operations are finalized. Otherwise, the scsi_done() function will be called within uas_zap_pending(), which is executed after usb_kill_anchored_urbs().  The error handling only takes effect when uas_queuecommand_lck() calls uas_submit_urbs() and returns the error value -ENODEV . In this case, the device is disconnected, and the flow proceeds to uas_disconnect(), where uas_zap_pending() is invoked to call uas_try_complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40345",
                        "url": "https://ubuntu.com/security/CVE-2025-40345",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: storage: sddr55: Reject out-of-bound new_pba  Discovered by Atuin - Automated Vulnerability Discovery Engine.  new_pba comes from the status packet returned after each write. A bogus device could report values beyond the block count derived from info->capacity, letting the driver walk off the end of pba_to_lba[] and corrupt heap memory.  Reject PBAs that exceed the computed block count and fail the transfer so we avoid touching out-of-range mapping entries.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-12 18:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68288",
                        "url": "https://ubuntu.com/security/CVE-2025-68288",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: storage: Fix memory leak in USB bulk transport  A kernel memory leak was identified by the 'ioctl_sg01' test from Linux Test Project (LTP). The following bytes were mainly observed: 0x53425355.  When USB storage devices incorrectly skip the data phase with status data, the code extracts/validates the CSW from the sg buffer, but fails to clear it afterwards. This leaves status protocol data in srb's transfer buffer, such as the US_BULK_CS_SIGN 'USBS' signature observed here. Thus, this can lead to USB protocols leaks to user space through SCSI generic (/dev/sg*) interfaces, such as the one seen here when the LTP test requested 512 KiB.  Fix the leak by zeroing the CSW data in srb's transfer buffer immediately after the validation of devices that skip data phase.  Note: Differently from CVE-2018-1000204, which fixed a big leak by zero- ing pages at allocation time, this leak occurs after allocation, when USB protocol data is written to already-allocated sg pages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68289",
                        "url": "https://ubuntu.com/security/CVE-2025-68289",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: f_eem: Fix memory leak in eem_unwrap  The existing code did not handle the failure case of usb_ep_queue in the command path, potentially leading to memory leaks.  Improve error handling to free all allocated resources on usb_ep_queue failure. This patch continues to use goto logic for error handling, as the existing error handling is complex and not easily adaptable to auto-cleanup helpers.  kmemleak results:   unreferenced object 0xffffff895a512300 (size 240):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       kmem_cache_alloc+0x1b4/0x358       skb_clone+0x90/0xd8       eem_unwrap+0x1cc/0x36c   unreferenced object 0xffffff8a157f4000 (size 256):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       kmalloc_trace+0x48/0x140       dwc3_gadget_ep_alloc_request+0x58/0x11c       usb_ep_alloc_request+0x40/0xe4       eem_unwrap+0x204/0x36c   unreferenced object 0xffffff8aadbaac00 (size 128):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       __kmalloc+0x64/0x1a8       eem_unwrap+0x218/0x36c   unreferenced object 0xffffff89ccef3500 (size 64):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       kmalloc_trace+0x48/0x140       eem_unwrap+0x238/0x36c",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68290",
                        "url": "https://ubuntu.com/security/CVE-2025-68290",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  most: usb: fix double free on late probe failure  The MOST subsystem has a non-standard registration function which frees the interface on registration failures and on deregistration.  This unsurprisingly leads to bugs in the MOST drivers, and a couple of recent changes turned a reference underflow and use-after-free in the USB driver into several double free and a use-after-free on late probe failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68328",
                        "url": "https://ubuntu.com/security/CVE-2025-68328",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  firmware: stratix10-svc: fix bug in saving controller data  Fix the incorrect usage of platform_set_drvdata and dev_set_drvdata. They both are of the same data and overrides each other. This resulted in the rmmod of the svc driver to fail and throw a kernel panic for kthread_stop and fifo free.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68339",
                        "url": "https://ubuntu.com/security/CVE-2025-68339",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  atm/fore200e: Fix possible data race in fore200e_open()  Protect access to fore200e->available_cell_rate with rate_mtx lock in the error handling path of fore200e_open() to prevent a data race.  The field fore200e->available_cell_rate is a shared resource used to track available bandwidth. It is concurrently accessed by fore200e_open(), fore200e_close(), and fore200e_change_qos().  In fore200e_open(), the lock rate_mtx is correctly held when subtracting vcc->qos.txtp.max_pcr from available_cell_rate to reserve bandwidth. However, if the subsequent call to fore200e_activate_vcin() fails, the function restores the reserved bandwidth by adding back to available_cell_rate without holding the lock.  This introduces a race condition because available_cell_rate is a global device resource shared across all VCCs. If the error path in fore200e_open() executes concurrently with operations like fore200e_close() or fore200e_change_qos() on other VCCs, a read-modify-write race occurs.  Specifically, the error path reads the rate without the lock. If another CPU acquires the lock and modifies the rate (e.g., releasing bandwidth in fore200e_close()) between this read and the subsequent write, the error path will overwrite the concurrent update with a stale value. This results in incorrect bandwidth accounting.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-23 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68330",
                        "url": "https://ubuntu.com/security/CVE-2025-68330",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: accel: bmc150: Fix irq assumption regression  The code in bmc150-accel-core.c unconditionally calls bmc150_accel_set_interrupt() in the iio_buffer_setup_ops, such as on the runtime PM resume path giving a kernel splat like this if the device has no interrupts:  Unable to handle kernel NULL pointer dereference at virtual   address 00000001 when read  PC is at bmc150_accel_set_interrupt+0x98/0x194 LR is at __pm_runtime_resume+0x5c/0x64 (...) Call trace: bmc150_accel_set_interrupt from bmc150_accel_buffer_postenable+0x40/0x108 bmc150_accel_buffer_postenable from __iio_update_buffers+0xbe0/0xcbc __iio_update_buffers from enable_store+0x84/0xc8 enable_store from kernfs_fop_write_iter+0x154/0x1b4  This bug seems to have been in the driver since the beginning, but it only manifests recently, I do not know why.  Store the IRQ number in the state struct, as this is a common pattern in other drivers, then use this to determine if we have IRQ support or not.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68301",
                        "url": "https://ubuntu.com/security/CVE-2025-68301",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: atlantic: fix fragment overflow handling in RX path  The atlantic driver can receive packets with more than MAX_SKB_FRAGS (17) fragments when handling large multi-descriptor packets. This causes an out-of-bounds write in skb_add_rx_frag_netmem() leading to kernel panic.  The issue occurs because the driver doesn't check the total number of fragments before calling skb_add_rx_frag(). When a packet requires more than MAX_SKB_FRAGS fragments, the fragment index exceeds the array bounds.  Fix by assuming there will be an extra frag if buff->len > AQ_CFG_RX_HDR_SIZE, then all fragments are accounted for. And reusing the existing check to prevent the overflow earlier in the code path.  This crash occurred in production with an Aquantia AQC113 10G NIC.  Stack trace from production environment: ``` RIP: 0010:skb_add_rx_frag_netmem+0x29/0xd0 Code: 90 f3 0f 1e fa 0f 1f 44 00 00 48 89 f8 41 89 ca 48 89 d7 48 63 ce 8b 90 c0 00 00 00 48 c1 e1 04 48 01 ca 48 03 90 c8 00 00 00 <48> 89 7a 30 44 89 52 3c 44 89 42 38 40 f6 c7 01 75 74 48 89 fa 83 RSP: 0018:ffffa9bec02a8d50 EFLAGS: 00010287 RAX: ffff925b22e80a00 RBX: ffff925ad38d2700 RCX: fffffffe0a0c8000 RDX: ffff9258ea95bac0 RSI: ffff925ae0a0c800 RDI: 0000000000037a40 RBP: 0000000000000024 R08: 0000000000000000 R09: 0000000000000021 R10: 0000000000000848 R11: 0000000000000000 R12: ffffa9bec02a8e24 R13: ffff925ad8615570 R14: 0000000000000000 R15: ffff925b22e80a00 FS: 0000000000000000(0000) GS:ffff925e47880000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffff9258ea95baf0 CR3: 0000000166022004 CR4: 0000000000f72ef0 PKRU: 55555554 Call Trace: <IRQ> aq_ring_rx_clean+0x175/0xe60 [atlantic] ? aq_ring_rx_clean+0x14d/0xe60 [atlantic] ? aq_ring_tx_clean+0xdf/0x190 [atlantic] ? kmem_cache_free+0x348/0x450 ? aq_vec_poll+0x81/0x1d0 [atlantic] ? __napi_poll+0x28/0x1c0 ? net_rx_action+0x337/0x420 ```  Changes in v4: - Add Fixes: tag to satisfy patch validation requirements.  Changes in v3: - Fix by assuming there will be an extra frag if buff->len > AQ_CFG_RX_HDR_SIZE,   then all fragments are accounted for.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68302",
                        "url": "https://ubuntu.com/security/CVE-2025-68302",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sxgbe: fix potential NULL dereference in sxgbe_rx()  Currently, when skb is null, the driver prints an error and then dereferences skb on the next line.  To fix this, let's add a 'break' after the error message to switch to sxgbe_rx_refill(), which is similar to the approach taken by the other drivers in this particular case, e.g. calxeda with xgmac_rx().  Found during a code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68303",
                        "url": "https://ubuntu.com/security/CVE-2025-68303",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: intel: punit_ipc: fix memory corruption  This passes the address of the pointer \"&punit_ipcdev\" when the intent was to pass the pointer itself \"punit_ipcdev\" (without the ampersand). This means that the:  \tcomplete(&ipcdev->cmd_complete);  in intel_punit_ioc() will write to a wrong memory address corrupting it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68308",
                        "url": "https://ubuntu.com/security/CVE-2025-68308",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: kvaser_usb: leaf: Fix potential infinite loop in command parsers  The `kvaser_usb_leaf_wait_cmd()` and `kvaser_usb_leaf_read_bulk_callback` functions contain logic to zero-length commands. These commands are used to align data to the USB endpoint's wMaxPacketSize boundary.  The driver attempts to skip these placeholders by aligning the buffer position `pos` to the next packet boundary using `round_up()` function.  However, if zero-length command is found exactly on a packet boundary (i.e., `pos` is a multiple of wMaxPacketSize, including 0), `round_up` function will return the unchanged value of `pos`. This prevents `pos` to be increased, causing an infinite loop in the parsing logic.  This patch fixes this in the function by using `pos + 1` instead. This ensures that even if `pos` is on a boundary, the calculation is based on `pos + 1`, forcing `round_up()` to always return the next aligned boundary.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40257",
                        "url": "https://ubuntu.com/security/CVE-2025-40257",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fix a race in mptcp_pm_del_add_timer()  mptcp_pm_del_add_timer() can call sk_stop_timer_sync(sk, &entry->add_timer) while another might have free entry already, as reported by syzbot.  Add RCU protection to fix this issue.  Also change confusing add_timer variable with stop_timer boolean.  syzbot report:  BUG: KASAN: slab-use-after-free in __timer_delete_sync+0x372/0x3f0 kernel/time/timer.c:1616 Read of size 4 at addr ffff8880311e4150 by task kworker/1:1/44  CPU: 1 UID: 0 PID: 44 Comm: kworker/1:1 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 Workqueue: events mptcp_worker Call Trace:  <TASK>   dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120   print_address_description mm/kasan/report.c:378 [inline]   print_report+0xca/0x240 mm/kasan/report.c:482   kasan_report+0x118/0x150 mm/kasan/report.c:595   __timer_delete_sync+0x372/0x3f0 kernel/time/timer.c:1616   sk_stop_timer_sync+0x1b/0x90 net/core/sock.c:3631   mptcp_pm_del_add_timer+0x283/0x310 net/mptcp/pm.c:362   mptcp_incoming_options+0x1357/0x1f60 net/mptcp/options.c:1174   tcp_data_queue+0xca/0x6450 net/ipv4/tcp_input.c:5361   tcp_rcv_established+0x1335/0x2670 net/ipv4/tcp_input.c:6441   tcp_v4_do_rcv+0x98b/0xbf0 net/ipv4/tcp_ipv4.c:1931   tcp_v4_rcv+0x252a/0x2dc0 net/ipv4/tcp_ipv4.c:2374   ip_protocol_deliver_rcu+0x221/0x440 net/ipv4/ip_input.c:205   ip_local_deliver_finish+0x3bb/0x6f0 net/ipv4/ip_input.c:239   NF_HOOK+0x30c/0x3a0 include/linux/netfilter.h:318   NF_HOOK+0x30c/0x3a0 include/linux/netfilter.h:318   __netif_receive_skb_one_core net/core/dev.c:6079 [inline]   __netif_receive_skb+0x143/0x380 net/core/dev.c:6192   process_backlog+0x31e/0x900 net/core/dev.c:6544   __napi_poll+0xb6/0x540 net/core/dev.c:7594   napi_poll net/core/dev.c:7657 [inline]   net_rx_action+0x5f7/0xda0 net/core/dev.c:7784   handle_softirqs+0x22f/0x710 kernel/softirq.c:622   __do_softirq kernel/softirq.c:656 [inline]   __local_bh_enable_ip+0x1a0/0x2e0 kernel/softirq.c:302   mptcp_pm_send_ack net/mptcp/pm.c:210 [inline]  mptcp_pm_addr_send_ack+0x41f/0x500 net/mptcp/pm.c:-1   mptcp_pm_worker+0x174/0x320 net/mptcp/pm.c:1002   mptcp_worker+0xd5/0x1170 net/mptcp/protocol.c:2762   process_one_work kernel/workqueue.c:3263 [inline]   process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3346   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3427   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 44:   kasan_save_stack mm/kasan/common.c:56 [inline]   kasan_save_track+0x3e/0x80 mm/kasan/common.c:77   poison_kmalloc_redzone mm/kasan/common.c:400 [inline]   __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:417   kasan_kmalloc include/linux/kasan.h:262 [inline]   __kmalloc_cache_noprof+0x1ef/0x6c0 mm/slub.c:5748   kmalloc_noprof include/linux/slab.h:957 [inline]   mptcp_pm_alloc_anno_list+0x104/0x460 net/mptcp/pm.c:385   mptcp_pm_create_subflow_or_signal_addr+0xf9d/0x1360 net/mptcp/pm_kernel.c:355   mptcp_pm_nl_fully_established net/mptcp/pm_kernel.c:409 [inline]   __mptcp_pm_kernel_worker+0x417/0x1ef0 net/mptcp/pm_kernel.c:1529   mptcp_pm_worker+0x1ee/0x320 net/mptcp/pm.c:1008   mptcp_worker+0xd5/0x1170 net/mptcp/protocol.c:2762   process_one_work kernel/workqueue.c:3263 [inline]   process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3346   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3427   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  Freed by task 6630:   kasan_save_stack mm/kasan/common.c:56 [inline]   kasan_save_track+0x3e/0x80 mm/kasan/common.c:77   __kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:587   kasan_save_free_info mm/kasan/kasan.h:406 [inline]   poison_slab_object m ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68217",
                        "url": "https://ubuntu.com/security/CVE-2025-68217",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: pegasus-notetaker - fix potential out-of-bounds access  In the pegasus_notetaker driver, the pegasus_probe() function allocates the URB transfer buffer using the wMaxPacketSize value from the endpoint descriptor. An attacker can use a malicious USB descriptor to force the allocation of a very small buffer.  Subsequently, if the device sends an interrupt packet with a specific pattern (e.g., where the first byte is 0x80 or 0x42), the pegasus_parse_packet() function parses the packet without checking the allocated buffer size. This leads to an out-of-bounds memory access.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68204",
                        "url": "https://ubuntu.com/security/CVE-2025-68204",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: arm: scmi: Fix genpd leak on provider registration failure  If of_genpd_add_provider_onecell() fails during probe, the previously created generic power domains are not removed, leading to a memory leak and potential kernel crash later in genpd_debug_add().  Add proper error handling to unwind the initialized domains before returning from probe to ensure all resources are correctly released on failure.  Example crash trace observed without this fix:    | Unable to handle kernel paging request at virtual address fffffffffffffc70   | CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.18.0-rc1 #405 PREEMPT   | Hardware name: ARM LTD ARM Juno Development Platform/ARM Juno Development Platform   | pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)   | pc : genpd_debug_add+0x2c/0x160   | lr : genpd_debug_init+0x74/0x98   | Call trace:   |  genpd_debug_add+0x2c/0x160 (P)   |  genpd_debug_init+0x74/0x98   |  do_one_initcall+0xd0/0x2d8   |  do_initcall_level+0xa0/0x140   |  do_initcalls+0x60/0xa8   |  do_basic_setup+0x28/0x40   |  kernel_init_freeable+0xe8/0x170   |  kernel_init+0x2c/0x140   |  ret_from_fork+0x10/0x20",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68245",
                        "url": "https://ubuntu.com/security/CVE-2025-68245",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: netpoll: fix incorrect refcount handling causing incorrect cleanup  commit efa95b01da18 (\"netpoll: fix use after free\") incorrectly ignored the refcount and prematurely set dev->npinfo to NULL during netpoll cleanup, leading to improper behavior and memory leaks.  Scenario causing lack of proper cleanup:  1) A netpoll is associated with a NIC (e.g., eth0) and netdev->npinfo is    allocated, and refcnt = 1    - Keep in mind that npinfo is shared among all netpoll instances. In      this case, there is just one.  2) Another netpoll is also associated with the same NIC and    npinfo->refcnt += 1.    - Now dev->npinfo->refcnt = 2;    - There is just one npinfo associated to the netdev.  3) When the first netpolls goes to clean up:    - The first cleanup succeeds and clears np->dev->npinfo, ignoring      refcnt.      - It basically calls `RCU_INIT_POINTER(np->dev->npinfo, NULL);`    - Set dev->npinfo = NULL, without proper cleanup    - No ->ndo_netpoll_cleanup() is either called  4) Now the second target tries to clean up    - The second cleanup fails because np->dev->npinfo is already NULL.      * In this case, ops->ndo_netpoll_cleanup() was never called, and        the skb pool is not cleaned as well (for the second netpoll        instance)   - This leaks npinfo and skbpool skbs, which is clearly reported by     kmemleak.  Revert commit efa95b01da18 (\"netpoll: fix use after free\") and adds clarifying comments emphasizing that npinfo cleanup should only happen once the refcount reaches zero, ensuring stable and correct netpoll behavior.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-37354",
                        "url": "https://ubuntu.com/security/CVE-2024-37354",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix crash on racing fsync and size-extending write into prealloc  We have been seeing crashes on duplicate keys in btrfs_set_item_key_safe():    BTRFS critical (device vdb): slot 4 key (450 108 8192) new key (450 108 8192)   ------------[ cut here ]------------   kernel BUG at fs/btrfs/ctree.c:2620!   invalid opcode: 0000 [#1] PREEMPT SMP PTI   CPU: 0 PID: 3139 Comm: xfs_io Kdump: loaded Not tainted 6.9.0 #6   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014   RIP: 0010:btrfs_set_item_key_safe+0x11f/0x290 [btrfs]  With the following stack trace:    #0  btrfs_set_item_key_safe (fs/btrfs/ctree.c:2620:4)   #1  btrfs_drop_extents (fs/btrfs/file.c:411:4)   #2  log_one_extent (fs/btrfs/tree-log.c:4732:9)   #3  btrfs_log_changed_extents (fs/btrfs/tree-log.c:4955:9)   #4  btrfs_log_inode (fs/btrfs/tree-log.c:6626:9)   #5  btrfs_log_inode_parent (fs/btrfs/tree-log.c:7070:8)   #6  btrfs_log_dentry_safe (fs/btrfs/tree-log.c:7171:8)   #7  btrfs_sync_file (fs/btrfs/file.c:1933:8)   #8  vfs_fsync_range (fs/sync.c:188:9)   #9  vfs_fsync (fs/sync.c:202:9)   #10 do_fsync (fs/sync.c:212:9)   #11 __do_sys_fdatasync (fs/sync.c:225:9)   #12 __se_sys_fdatasync (fs/sync.c:223:1)   #13 __x64_sys_fdatasync (fs/sync.c:223:1)   #14 do_syscall_x64 (arch/x86/entry/common.c:52:14)   #15 do_syscall_64 (arch/x86/entry/common.c:83:7)   #16 entry_SYSCALL_64+0xaf/0x14c (arch/x86/entry/entry_64.S:121)  So we're logging a changed extent from fsync, which is splitting an extent in the log tree. But this split part already exists in the tree, triggering the BUG().  This is the state of the log tree at the time of the crash, dumped with drgn (https://github.com/osandov/drgn/blob/main/contrib/btrfs_tree.py) to get more details than btrfs_print_leaf() gives us:    >>> print_extent_buffer(prog.crashed_thread().stack_trace()[0][\"eb\"])   leaf 33439744 level 0 items 72 generation 9 owner 18446744073709551610   leaf 33439744 flags 0x100000000000000   fs uuid e5bd3946-400c-4223-8923-190ef1f18677   chunk uuid d58cb17e-6d02-494a-829a-18b7d8a399da           item 0 key (450 INODE_ITEM 0) itemoff 16123 itemsize 160                   generation 7 transid 9 size 8192 nbytes 8473563889606862198                   block group 0 mode 100600 links 1 uid 0 gid 0 rdev 0                   sequence 204 flags 0x10(PREALLOC)                   atime 1716417703.220000000 (2024-05-22 15:41:43)                   ctime 1716417704.983333333 (2024-05-22 15:41:44)                   mtime 1716417704.983333333 (2024-05-22 15:41:44)                   otime 17592186044416.000000000 (559444-03-08 01:40:16)           item 1 key (450 INODE_REF 256) itemoff 16110 itemsize 13                   index 195 namelen 3 name: 193           item 2 key (450 XATTR_ITEM 1640047104) itemoff 16073 itemsize 37                   location key (0 UNKNOWN.0 0) type XATTR                   transid 7 data_len 1 name_len 6                   name: user.a                   data a           item 3 key (450 EXTENT_DATA 0) itemoff 16020 itemsize 53                   generation 9 type 1 (regular)                   extent data disk byte 303144960 nr 12288                   extent data offset 0 nr 4096 ram 12288                   extent compression 0 (none)           item 4 key (450 EXTENT_DATA 4096) itemoff 15967 itemsize 53                   generation 9 type 2 (prealloc)                   prealloc data disk byte 303144960 nr 12288                   prealloc data offset 4096 nr 8192           item 5 key (450 EXTENT_DATA 8192) itemoff 15914 itemsize 53                   generation 9 type 2 (prealloc)                   prealloc data disk byte 303144960 nr 12288                   prealloc data offset 8192 nr 4096   ...  So the real problem happened earlier: notice that items 4 (4k-12k) and 5 (8k-12k) overlap. Both are prealloc extents. Item 4 straddles i_size and item 5 starts at i_size.  Here is the state of ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-06-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68220",
                        "url": "https://ubuntu.com/security/CVE-2025-68220",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: ethernet: ti: netcp: Standardize knav_dma_open_channel to return NULL on error  Make knav_dma_open_channel consistently return NULL on error instead of ERR_PTR. Currently the header include/linux/soc/ti/knav_dma.h returns NULL when the driver is disabled, but the driver implementation does not even return NULL or ERR_PTR on failure, causing inconsistency in the users. This results in a crash in netcp_free_navigator_resources as followed (trimmed):  Unhandled fault: alignment exception (0x221) at 0xfffffff2 [fffffff2] *pgd=80000800207003, *pmd=82ffda003, *pte=00000000 Internal error: : 221 [#1] SMP ARM Modules linked in: CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.17.0-rc7 #1 NONE Hardware name: Keystone PC is at knav_dma_close_channel+0x30/0x19c LR is at netcp_free_navigator_resources+0x2c/0x28c  [... TRIM...]  Call trace:  knav_dma_close_channel from netcp_free_navigator_resources+0x2c/0x28c  netcp_free_navigator_resources from netcp_ndo_open+0x430/0x46c  netcp_ndo_open from __dev_open+0x114/0x29c  __dev_open from __dev_change_flags+0x190/0x208  __dev_change_flags from netif_change_flags+0x1c/0x58  netif_change_flags from dev_change_flags+0x38/0xa0  dev_change_flags from ip_auto_config+0x2c4/0x11f0  ip_auto_config from do_one_initcall+0x58/0x200  do_one_initcall from kernel_init_freeable+0x1cc/0x238  kernel_init_freeable from kernel_init+0x1c/0x12c  kernel_init from ret_from_fork+0x14/0x38 [... TRIM...]  Standardize the error handling by making the function return NULL on all error conditions. The API is used in just the netcp_core.c so the impact is limited.  Note, this change, in effect reverts commit 5b6cb43b4d62 (\"net: ethernet: ti: netcp_core: return error while dma channel open issue\"), but provides a less error prone implementation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40272",
                        "url": "https://ubuntu.com/security/CVE-2025-40272",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/secretmem: fix use-after-free race in fault handler  When a page fault occurs in a secret memory file created with `memfd_secret(2)`, the kernel will allocate a new folio for it, mark the underlying page as not-present in the direct map, and add it to the file mapping.  If two tasks cause a fault in the same page concurrently, both could end up allocating a folio and removing the page from the direct map, but only one would succeed in adding the folio to the file mapping.  The task that failed undoes the effects of its attempt by (a) freeing the folio again and (b) putting the page back into the direct map.  However, by doing these two operations in this order, the page becomes available to the allocator again before it is placed back in the direct mapping.  If another task attempts to allocate the page between (a) and (b), and the kernel tries to access it via the direct map, it would result in a supervisor not-present page fault.  Fix the ordering to restore the direct map before the folio is freed.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40248",
                        "url": "https://ubuntu.com/security/CVE-2025-40248",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock: Ignore signal/timeout on connect() if already established  During connect(), acting on a signal/timeout by disconnecting an already established socket leads to several issues:  1. connect() invoking vsock_transport_cancel_pkt() ->    virtio_transport_purge_skbs() may race with sendmsg() invoking    virtio_transport_get_credit(). This results in a permanently elevated    `vvs->bytes_unsent`. Which, in turn, confuses the SOCK_LINGER handling.  2. connect() resetting a connected socket's state may race with socket    being placed in a sockmap. A disconnected socket remaining in a sockmap    breaks sockmap's assumptions. And gives rise to WARNs.  3. connect() transitioning SS_CONNECTED -> SS_UNCONNECTED allows for a    transport change/drop after TCP_ESTABLISHED. Which poses a problem for    any simultaneous sendmsg() or connect() and may result in a    use-after-free/null-ptr-deref.  Do not disconnect socket on signal/timeout. Keep the logic for unconnected sockets: they don't linger, can't be placed in a sockmap, are rejected by sendmsg().  [1]: https://lore.kernel.org/netdev/e07fd95c-9a38-4eea-9638-133e38c2ec9b@rbox.co/ [2]: https://lore.kernel.org/netdev/20250317-vsock-trans-signal-race-v4-0-fc8837f3f1d4@rbox.co/ [3]: https://lore.kernel.org/netdev/60f1b7db-3099-4f6a-875e-af9f6ef194f6@rbox.co/",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40252",
                        "url": "https://ubuntu.com/security/CVE-2025-40252",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: qlogic/qede: fix potential out-of-bounds read in qede_tpa_cont() and qede_tpa_end()  The loops in 'qede_tpa_cont()' and 'qede_tpa_end()', iterate over 'cqe->len_list[]' using only a zero-length terminator as the stopping condition. If the terminator was missing or malformed, the loop could run past the end of the fixed-size array.  Add an explicit bound check using ARRAY_SIZE() in both loops to prevent a potential out-of-bounds access.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40253",
                        "url": "https://ubuntu.com/security/CVE-2025-40253",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  s390/ctcm: Fix double-kfree  The function 'mpc_rcvd_sweep_req(mpcginfo)' is called conditionally from function 'ctcmpc_unpack_skb'. It frees passed mpcginfo. After that a call to function 'kfree' in function 'ctcmpc_unpack_skb' frees it again.  Remove 'kfree' call in function 'mpc_rcvd_sweep_req(mpcginfo)'.  Bug detected by the clang static analyzer.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40254",
                        "url": "https://ubuntu.com/security/CVE-2025-40254",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: openvswitch: remove never-working support for setting nsh fields  The validation of the set(nsh(...)) action is completely wrong. It runs through the nsh_key_put_from_nlattr() function that is the same function that validates NSH keys for the flow match and the push_nsh() action.  However, the set(nsh(...)) has a very different memory layout.  Nested attributes in there are doubled in size in case of the masked set().  That makes proper validation impossible.  There is also confusion in the code between the 'masked' flag, that says that the nested attributes are doubled in size containing both the value and the mask, and the 'is_mask' that says that the value we're parsing is the mask.  This is causing kernel crash on trying to write into mask part of the match with SW_FLOW_KEY_PUT() during validation, while validate_nsh() doesn't allocate any memory for it:    BUG: kernel NULL pointer dereference, address: 0000000000000018   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 1c2383067 P4D 1c2383067 PUD 20b703067 PMD 0   Oops: Oops: 0000 [#1] SMP NOPTI   CPU: 8 UID: 0 Kdump: loaded Not tainted 6.17.0-rc4+ #107 PREEMPT(voluntary)   RIP: 0010:nsh_key_put_from_nlattr+0x19d/0x610 [openvswitch]   Call Trace:    <TASK>    validate_nsh+0x60/0x90 [openvswitch]    validate_set.constprop.0+0x270/0x3c0 [openvswitch]    __ovs_nla_copy_actions+0x477/0x860 [openvswitch]    ovs_nla_copy_actions+0x8d/0x100 [openvswitch]    ovs_packet_cmd_execute+0x1cc/0x310 [openvswitch]    genl_family_rcv_msg_doit+0xdb/0x130    genl_family_rcv_msg+0x14b/0x220    genl_rcv_msg+0x47/0xa0    netlink_rcv_skb+0x53/0x100    genl_rcv+0x24/0x40    netlink_unicast+0x280/0x3b0    netlink_sendmsg+0x1f7/0x430    ____sys_sendmsg+0x36b/0x3a0    ___sys_sendmsg+0x87/0xd0    __sys_sendmsg+0x6d/0xd0    do_syscall_64+0x7b/0x2c0    entry_SYSCALL_64_after_hwframe+0x76/0x7e  The third issue with this process is that while trying to convert the non-masked set into masked one, validate_set() copies and doubles the size of the OVS_KEY_ATTR_NSH as if it didn't have any nested attributes.  It should be copying each nested attribute and doubling them in size independently.  And the process must be properly reversed during the conversion back from masked to a non-masked variant during the flow dump.  In the end, the only two outcomes of trying to use this action are either validation failure or a kernel crash.  And if somehow someone manages to install a flow with such an action, it will most definitely not do what it is supposed to, since all the keys and the masks are mixed up.  Fixing all the issues is a complex task as it requires re-writing most of the validation code.  Given that and the fact that this functionality never worked since introduction, let's just remove it altogether.  It's better to re-introduce it later with a proper implementation instead of trying to fix it in stable releases.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40258",
                        "url": "https://ubuntu.com/security/CVE-2025-40258",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fix race condition in mptcp_schedule_work()  syzbot reported use-after-free in mptcp_schedule_work() [1]  Issue here is that mptcp_schedule_work() schedules a work, then gets a refcount on sk->sk_refcnt if the work was scheduled. This refcount will be released by mptcp_worker().  [A] if (schedule_work(...)) { [B]     sock_hold(sk);         return true;     }  Problem is that mptcp_worker() can run immediately and complete before [B]  We need instead :      sock_hold(sk);     if (schedule_work(...))         return true;     sock_put(sk);  [1] refcount_t: addition on 0; use-after-free.  WARNING: CPU: 1 PID: 29 at lib/refcount.c:25 refcount_warn_saturate+0xfa/0x1d0 lib/refcount.c:25 Call Trace:  <TASK>  __refcount_add include/linux/refcount.h:-1 [inline]   __refcount_inc include/linux/refcount.h:366 [inline]   refcount_inc include/linux/refcount.h:383 [inline]   sock_hold include/net/sock.h:816 [inline]   mptcp_schedule_work+0x164/0x1a0 net/mptcp/protocol.c:943   mptcp_tout_timer+0x21/0xa0 net/mptcp/protocol.c:2316   call_timer_fn+0x17e/0x5f0 kernel/time/timer.c:1747   expire_timers kernel/time/timer.c:1798 [inline]   __run_timers kernel/time/timer.c:2372 [inline]   __run_timer_base+0x648/0x970 kernel/time/timer.c:2384   run_timer_base kernel/time/timer.c:2393 [inline]   run_timer_softirq+0xb7/0x180 kernel/time/timer.c:2403   handle_softirqs+0x22f/0x710 kernel/softirq.c:622   __do_softirq kernel/softirq.c:656 [inline]   run_ktimerd+0xcf/0x190 kernel/softirq.c:1138   smpboot_thread_fn+0x542/0xa60 kernel/smpboot.c:160   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68229",
                        "url": "https://ubuntu.com/security/CVE-2025-68229",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: tcm_loop: Fix segfault in tcm_loop_tpg_address_show()  If the allocation of tl_hba->sh fails in tcm_loop_driver_probe() and we attempt to dereference it in tcm_loop_tpg_address_show() we will get a segfault, see below for an example. So, check tl_hba->sh before dereferencing it.    Unable to allocate struct scsi_host   BUG: kernel NULL pointer dereference, address: 0000000000000194   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 0 P4D 0   Oops: 0000 [#1] PREEMPT SMP NOPTI   CPU: 1 PID: 8356 Comm: tokio-runtime-w Not tainted 6.6.104.2-4.azl3 #1   Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.1 09/28/2024   RIP: 0010:tcm_loop_tpg_address_show+0x2e/0x50 [tcm_loop] ...   Call Trace:    <TASK>    configfs_read_iter+0x12d/0x1d0 [configfs]    vfs_read+0x1b5/0x300    ksys_read+0x6f/0xf0 ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40259",
                        "url": "https://ubuntu.com/security/CVE-2025-40259",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: sg: Do not sleep in atomic context  sg_finish_rem_req() calls blk_rq_unmap_user(). The latter function may sleep. Hence, call sg_finish_rem_req() with interrupts enabled instead of disabled.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40261",
                        "url": "https://ubuntu.com/security/CVE-2025-40261",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()  nvme_fc_delete_assocation() waits for pending I/O to complete before returning, and an error can cause ->ioerr_work to be queued after cancel_work_sync() had been called.  Move the call to cancel_work_sync() to be after nvme_fc_delete_association() to ensure ->ioerr_work is not running when the nvme_fc_ctrl object is freed.  Otherwise the following can occur:  [ 1135.911754] list_del corruption, ff2d24c8093f31f8->next is NULL [ 1135.917705] ------------[ cut here ]------------ [ 1135.922336] kernel BUG at lib/list_debug.c:52! [ 1135.926784] Oops: invalid opcode: 0000 [#1] SMP NOPTI [ 1135.931851] CPU: 48 UID: 0 PID: 726 Comm: kworker/u449:23 Kdump: loaded Not tainted 6.12.0 #1 PREEMPT(voluntary) [ 1135.943490] Hardware name: Dell Inc. PowerEdge R660/0HGTK9, BIOS 2.5.4 01/16/2025 [ 1135.950969] Workqueue:  0x0 (nvme-wq) [ 1135.954673] RIP: 0010:__list_del_entry_valid_or_report.cold+0xf/0x6f [ 1135.961041] Code: c7 c7 98 68 72 94 e8 26 45 fe ff 0f 0b 48 c7 c7 70 68 72 94 e8 18 45 fe ff 0f 0b 48 89 fe 48 c7 c7 80 69 72 94 e8 07 45 fe ff <0f> 0b 48 89 d1 48 c7 c7 a0 6a 72 94 48 89 c2 e8 f3 44 fe ff 0f 0b [ 1135.979788] RSP: 0018:ff579b19482d3e50 EFLAGS: 00010046 [ 1135.985015] RAX: 0000000000000033 RBX: ff2d24c8093f31f0 RCX: 0000000000000000 [ 1135.992148] RDX: 0000000000000000 RSI: ff2d24d6bfa1d0c0 RDI: ff2d24d6bfa1d0c0 [ 1135.999278] RBP: ff2d24c8093f31f8 R08: 0000000000000000 R09: ffffffff951e2b08 [ 1136.006413] R10: ffffffff95122ac8 R11: 0000000000000003 R12: ff2d24c78697c100 [ 1136.013546] R13: fffffffffffffff8 R14: 0000000000000000 R15: ff2d24c78697c0c0 [ 1136.020677] FS:  0000000000000000(0000) GS:ff2d24d6bfa00000(0000) knlGS:0000000000000000 [ 1136.028765] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1136.034510] CR2: 00007fd207f90b80 CR3: 000000163ea22003 CR4: 0000000000f73ef0 [ 1136.041641] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 1136.048776] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400 [ 1136.055910] PKRU: 55555554 [ 1136.058623] Call Trace: [ 1136.061074]  <TASK> [ 1136.063179]  ? show_trace_log_lvl+0x1b0/0x2f0 [ 1136.067540]  ? show_trace_log_lvl+0x1b0/0x2f0 [ 1136.071898]  ? move_linked_works+0x4a/0xa0 [ 1136.075998]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.081744]  ? __die_body.cold+0x8/0x12 [ 1136.085584]  ? die+0x2e/0x50 [ 1136.088469]  ? do_trap+0xca/0x110 [ 1136.091789]  ? do_error_trap+0x65/0x80 [ 1136.095543]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.101289]  ? exc_invalid_op+0x50/0x70 [ 1136.105127]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.110874]  ? asm_exc_invalid_op+0x1a/0x20 [ 1136.115059]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.120806]  move_linked_works+0x4a/0xa0 [ 1136.124733]  worker_thread+0x216/0x3a0 [ 1136.128485]  ? __pfx_worker_thread+0x10/0x10 [ 1136.132758]  kthread+0xfa/0x240 [ 1136.135904]  ? __pfx_kthread+0x10/0x10 [ 1136.139657]  ret_from_fork+0x31/0x50 [ 1136.143236]  ? __pfx_kthread+0x10/0x10 [ 1136.146988]  ret_from_fork_asm+0x1a/0x30 [ 1136.150915]  </TASK>",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40262",
                        "url": "https://ubuntu.com/security/CVE-2025-40262",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: imx_sc_key - fix memory corruption on unload  This is supposed to be \"priv\" but we accidentally pass \"&priv\" which is an address in the stack and so it will lead to memory corruption when the imx_sc_key_action() function is called.  Remove the &.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40263",
                        "url": "https://ubuntu.com/security/CVE-2025-40263",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: cros_ec_keyb - fix an invalid memory access  If cros_ec_keyb_register_matrix() isn't called (due to `buttons_switches_only`) in cros_ec_keyb_probe(), `ckdev->idev` remains NULL.  An invalid memory access is observed in cros_ec_keyb_process() when receiving an EC_MKBP_EVENT_KEY_MATRIX event in cros_ec_keyb_work() in such case.    Unable to handle kernel read from unreadable memory at virtual address 0000000000000028   ...   x3 : 0000000000000000 x2 : 0000000000000000   x1 : 0000000000000000 x0 : 0000000000000000   Call trace:   input_event   cros_ec_keyb_work   blocking_notifier_call_chain   ec_irq_thread  It's still unknown about why the kernel receives such malformed event, in any cases, the kernel shouldn't access `ckdev->idev` and friends if the driver doesn't intend to initialize them.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40264",
                        "url": "https://ubuntu.com/security/CVE-2025-40264",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  be2net: pass wrb_params in case of OS2BMC  be_insert_vlan_in_pkt() is called with the wrb_params argument being NULL at be_send_pkt_to_bmc() call site.  This may lead to dereferencing a NULL pointer when processing a workaround for specific packet, as commit bc0c3405abbb (\"be2net: fix a Tx stall bug caused by a specific ipv6 packet\") states.  The correct way would be to pass the wrb_params from be_xmit().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68238",
                        "url": "https://ubuntu.com/security/CVE-2025-68238",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mtd: rawnand: cadence: fix DMA device NULL pointer dereference  The DMA device pointer `dma_dev` was being dereferenced before ensuring that `cdns_ctrl->dmac` is properly initialized.  Move the assignment of `dma_dev` after successfully acquiring the DMA channel to ensure the pointer is valid before use.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68734",
                        "url": "https://ubuntu.com/security/CVE-2025-68734",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  isdn: mISDN: hfcsusb: fix memory leak in hfcsusb_probe()  In hfcsusb_probe(), the memory allocated for ctrl_urb gets leaked when setup_instance() fails with an error code. Fix that by freeing the urb before freeing the hw structure. Also change the error paths to use the goto ladder style.  Compile tested only. Issue found using a prototype static analysis tool.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40269",
                        "url": "https://ubuntu.com/security/CVE-2025-40269",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix potential overflow of PCM transfer buffer  The PCM stream data in USB-audio driver is transferred over USB URB packet buffers, and each packet size is determined dynamically.  The packet sizes are limited by some factors such as wMaxPacketSize USB descriptor.  OTOH, in the current code, the actually used packet sizes are determined only by the rate and the PPS, which may be bigger than the size limit above.  This results in a buffer overflow, as reported by syzbot.  Basically when the limit is smaller than the calculated packet size, it implies that something is wrong, most likely a weird USB descriptor.  So the best option would be just to return an error at the parameter setup time before doing any further operations.  This patch introduces such a sanity check, and returns -EINVAL when the packet size is greater than maxpacksize.  The comparison with ep->packsize[1] alone should suffice since it's always equal or greater than ep->packsize[0].",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40271",
                        "url": "https://ubuntu.com/security/CVE-2025-40271",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fs/proc: fix uaf in proc_readdir_de()  Pde is erased from subdir rbtree through rb_erase(), but not set the node to EMPTY, which may result in uaf access.  We should use RB_CLEAR_NODE() set the erased node to EMPTY, then pde_subdir_next() will return NULL to avoid uaf access.  We found an uaf issue while using stress-ng testing, need to run testcase getdent and tun in the same time.  The steps of the issue is as follows:  1) use getdent to traverse dir /proc/pid/net/dev_snmp6/, and current    pde is tun3;  2) in the [time windows] unregister netdevice tun3 and tun2, and erase    them from rbtree.  erase tun3 first, and then erase tun2.  the    pde(tun2) will be released to slab;  3) continue to getdent process, then pde_subdir_next() will return    pde(tun2) which is released, it will case uaf access.  CPU 0                                      |    CPU 1 ------------------------------------------------------------------------- traverse dir /proc/pid/net/dev_snmp6/      |  unregister_netdevice(tun->dev)   //tun3 tun2 sys_getdents64()                           |   iterate_dir()                            |     proc_readdir()                         |       proc_readdir_de()                    |     snmp6_unregister_dev()         pde_get(de);                       |       proc_remove()         read_unlock(&proc_subdir_lock);    |         remove_proc_subtree()                                            |          write_lock(&proc_subdir_lock);         [time window]                      |          rb_erase(&root->subdir_node, &parent->subdir);                                            |          write_unlock(&proc_subdir_lock);         read_lock(&proc_subdir_lock);      |         next = pde_subdir_next(de);        |         pde_put(de);                       |         de = next;    //UAF                |  rbtree of dev_snmp6                         |                     pde(tun3)                      /    \\                   NULL  pde(tun2)",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68241",
                        "url": "https://ubuntu.com/security/CVE-2025-68241",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: route: Prevent rt_bind_exception() from rebinding stale fnhe  The sit driver's packet transmission path calls: sit_tunnel_xmit() -> update_or_create_fnhe(), which lead to fnhe_remove_oldest() being called to delete entries exceeding FNHE_RECLAIM_DEPTH+random.  The race window is between fnhe_remove_oldest() selecting fnheX for deletion and the subsequent kfree_rcu(). During this time, the concurrent path's __mkroute_output() -> find_exception() can fetch the soon-to-be-deleted fnheX, and rt_bind_exception() then binds it with a new dst using a dst_hold(). When the original fnheX is freed via RCU, the dst reference remains permanently leaked.  CPU 0                             CPU 1 __mkroute_output()   find_exception() [fnheX]                                   update_or_create_fnhe()                                     fnhe_remove_oldest() [fnheX]   rt_bind_exception() [bind dst]                                   RCU callback [fnheX freed, dst leak]  This issue manifests as a device reference count leak and a warning in dmesg when unregistering the net device:    unregister_netdevice: waiting for sitX to become free. Usage count = N  Ido Schimmel provided the simple test validation method [1].  The fix clears 'oldest->fnhe_daddr' before calling fnhe_flush_routes(). Since rt_bind_exception() checks this field, setting it to zero prevents the stale fnhe from being reused and bound to a new dst just before it is freed.  [1] ip netns add ns1 ip -n ns1 link set dev lo up ip -n ns1 address add 192.0.2.1/32 dev lo ip -n ns1 link add name dummy1 up type dummy ip -n ns1 route add 192.0.2.2/32 dev dummy1 ip -n ns1 link add name gretap1 up arp off type gretap \\     local 192.0.2.1 remote 192.0.2.2 ip -n ns1 route add 198.51.0.0/16 dev gretap1 taskset -c 0 ip netns exec ns1 mausezahn gretap1 \\     -A 198.51.100.1 -B 198.51.0.0/16 -t udp -p 1000 -c 0 -q & taskset -c 2 ip netns exec ns1 mausezahn gretap1 \\     -A 198.51.100.1 -B 198.51.0.0/16 -t udp -p 1000 -c 0 -q & sleep 10 ip netns pids ns1 | xargs kill ip netns del ns1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40273",
                        "url": "https://ubuntu.com/security/CVE-2025-40273",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: free copynotify stateid in nfs4_free_ol_stateid()  Typically copynotify stateid is freed either when parent's stateid is being close/freed or in nfsd4_laundromat if the stateid hasn't been used in a lease period.  However, in case when the server got an OPEN (which created a parent stateid), followed by a COPY_NOTIFY using that stateid, followed by a client reboot. New client instance while doing CREATE_SESSION would force expire previous state of this client. It leads to the open state being freed thru release_openowner-> nfs4_free_ol_stateid() and it finds that it still has copynotify stateid associated with it. We currently print a warning and is triggerred  WARNING: CPU: 1 PID: 8858 at fs/nfsd/nfs4state.c:1550 nfs4_free_ol_stateid+0xb0/0x100 [nfsd]  This patch, instead, frees the associated copynotify stateid here.  If the parent stateid is freed (without freeing the copynotify stateids associated with it), it leads to the list corruption when laundromat ends up freeing the copynotify state later.  [ 1626.839430] Internal error: Oops - BUG: 00000000f2000800 [#1]  SMP [ 1626.842828] Modules linked in: nfnetlink_queue nfnetlink_log bluetooth cfg80211 rpcrdma rdma_cm iw_cm ib_cm ib_core nfsd nfs_acl lockd grace nfs_localio ext4 crc16 mbcache jbd2 overlay uinput snd_seq_dummy snd_hrtimer qrtr rfkill vfat fat uvcvideo snd_hda_codec_generic videobuf2_vmalloc videobuf2_memops snd_hda_intel uvc snd_intel_dspcfg videobuf2_v4l2 videobuf2_common snd_hda_codec snd_hda_core videodev snd_hwdep snd_seq mc snd_seq_device snd_pcm snd_timer snd soundcore sg loop auth_rpcgss vsock_loopback vmw_vsock_virtio_transport_common vmw_vsock_vmci_transport vmw_vmci vsock xfs 8021q garp stp llc mrp nvme ghash_ce e1000e nvme_core sr_mod nvme_keyring nvme_auth cdrom vmwgfx drm_ttm_helper ttm sunrpc dm_mirror dm_region_hash dm_log iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi fuse dm_multipath dm_mod nfnetlink [ 1626.855594] CPU: 2 UID: 0 PID: 199 Comm: kworker/u24:33 Kdump: loaded Tainted: G    B   W           6.17.0-rc7+ #22 PREEMPT(voluntary) [ 1626.857075] Tainted: [B]=BAD_PAGE, [W]=WARN [ 1626.857573] Hardware name: VMware, Inc. VMware20,1/VBSA, BIOS VMW201.00V.24006586.BA64.2406042154 06/04/2024 [ 1626.858724] Workqueue: nfsd4 laundromat_main [nfsd] [ 1626.859304] pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) [ 1626.860010] pc : __list_del_entry_valid_or_report+0x148/0x200 [ 1626.860601] lr : __list_del_entry_valid_or_report+0x148/0x200 [ 1626.861182] sp : ffff8000881d7a40 [ 1626.861521] x29: ffff8000881d7a40 x28: 0000000000000018 x27: ffff0000c2a98200 [ 1626.862260] x26: 0000000000000600 x25: 0000000000000000 x24: ffff8000881d7b20 [ 1626.862986] x23: ffff0000c2a981e8 x22: 1fffe00012410e7d x21: ffff0000920873e8 [ 1626.863701] x20: ffff0000920873e8 x19: ffff000086f22998 x18: 0000000000000000 [ 1626.864421] x17: 20747562202c3839 x16: 3932326636383030 x15: 3030666666662065 [ 1626.865092] x14: 6220646c756f6873 x13: 0000000000000001 x12: ffff60004fd9e4a3 [ 1626.865713] x11: 1fffe0004fd9e4a2 x10: ffff60004fd9e4a2 x9 : dfff800000000000 [ 1626.866320] x8 : 00009fffb0261b5e x7 : ffff00027ecf2513 x6 : 0000000000000001 [ 1626.866938] x5 : ffff00027ecf2510 x4 : ffff60004fd9e4a3 x3 : 0000000000000000 [ 1626.867553] x2 : 0000000000000000 x1 : ffff000096069640 x0 : 000000000000006d [ 1626.868167] Call trace: [ 1626.868382]  __list_del_entry_valid_or_report+0x148/0x200 (P) [ 1626.868876]  _free_cpntf_state_locked+0xd0/0x268 [nfsd] [ 1626.869368]  nfs4_laundromat+0x6f8/0x1058 [nfsd] [ 1626.869813]  laundromat_main+0x24/0x60 [nfsd] [ 1626.870231]  process_one_work+0x584/0x1050 [ 1626.870595]  worker_thread+0x4c4/0xc60 [ 1626.870893]  kthread+0x2f8/0x398 [ 1626.871146]  ret_from_fork+0x10/0x20 [ 1626.871422] Code: aa1303e1 aa1403e3 910e8000 97bc55d7 (d4210000) [ 1626.871892] SMP: stopping secondary CPUs",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40040",
                        "url": "https://ubuntu.com/security/CVE-2025-40040",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/ksm: fix flag-dropping behavior in ksm_madvise  syzkaller discovered the following crash: (kernel BUG)  [   44.607039] ------------[ cut here ]------------ [   44.607422] kernel BUG at mm/userfaultfd.c:2067! [   44.608148] Oops: invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN NOPTI [   44.608814] CPU: 1 UID: 0 PID: 2475 Comm: reproducer Not tainted 6.16.0-rc6 #1 PREEMPT(none) [   44.609635] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [   44.610695] RIP: 0010:userfaultfd_release_all+0x3a8/0x460  <snip other registers, drop unreliable trace>  [   44.617726] Call Trace: [   44.617926]  <TASK> [   44.619284]  userfaultfd_release+0xef/0x1b0 [   44.620976]  __fput+0x3f9/0xb60 [   44.621240]  fput_close_sync+0x110/0x210 [   44.622222]  __x64_sys_close+0x8f/0x120 [   44.622530]  do_syscall_64+0x5b/0x2f0 [   44.622840]  entry_SYSCALL_64_after_hwframe+0x76/0x7e [   44.623244] RIP: 0033:0x7f365bb3f227  Kernel panics because it detects UFFD inconsistency during userfaultfd_release_all().  Specifically, a VMA which has a valid pointer to vma->vm_userfaultfd_ctx, but no UFFD flags in vma->vm_flags.  The inconsistency is caused in ksm_madvise(): when user calls madvise() with MADV_UNMEARGEABLE on a VMA that is registered for UFFD in MINOR mode, it accidentally clears all flags stored in the upper 32 bits of vma->vm_flags.  Assuming x86_64 kernel build, unsigned long is 64-bit and unsigned int and int are 32-bit wide.  This setup causes the following mishap during the &= ~VM_MERGEABLE assignment.  VM_MERGEABLE is a 32-bit constant of type unsigned int, 0x8000'0000. After ~ is applied, it becomes 0x7fff'ffff unsigned int, which is then promoted to unsigned long before the & operation.  This promotion fills upper 32 bits with leading 0s, as we're doing unsigned conversion (and even for a signed conversion, this wouldn't help as the leading bit is 0). & operation thus ends up AND-ing vm_flags with 0x0000'0000'7fff'ffff instead of intended 0xffff'ffff'7fff'ffff and hence accidentally clears the upper 32-bits of its value.  Fix it by changing `VM_MERGEABLE` constant to unsigned long, using the BIT() macro.  Note: other VM_* flags are not affected: This only happens to the VM_MERGEABLE flag, as the other VM_* flags are all constants of type int and after ~ operation, they end up with leading 1 and are thus converted to unsigned long with leading 1s.  Note 2: After commit 31defc3b01d9 (\"userfaultfd: remove (VM_)BUG_ON()s\"), this is no longer a kernel BUG, but a WARNING at the same place:  [   45.595973] WARNING: CPU: 1 PID: 2474 at mm/userfaultfd.c:2067  but the root-cause (flag-drop) remains the same.  [akpm@linux-foundation.org: rust bindgen wasn't able to handle BIT(), from Miguel]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-28 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68200",
                        "url": "https://ubuntu.com/security/CVE-2025-68200",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Add bpf_prog_run_data_pointers()  syzbot found that cls_bpf_classify() is able to change tc_skb_cb(skb)->drop_reason triggering a warning in sk_skb_reason_drop().  WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 __sk_skb_reason_drop net/core/skbuff.c:1189 [inline] WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 sk_skb_reason_drop+0x76/0x170 net/core/skbuff.c:1214  struct tc_skb_cb has been added in commit ec624fe740b4 (\"net/sched: Extend qdisc control block with tc control block\"), which added a wrong interaction with db58ba459202 (\"bpf: wire in data and data_end for cls_act_bpf\").  drop_reason was added later.  Add bpf_prog_run_data_pointers() helper to save/restore the net_sched storage colliding with BPF data_meta/data_end.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40275",
                        "url": "https://ubuntu.com/security/CVE-2025-40275",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix NULL pointer dereference in snd_usb_mixer_controls_badd  In snd_usb_create_streams(), for UAC version 3 devices, the Interface Association Descriptor (IAD) is retrieved via usb_ifnum_to_if(). If this call fails, a fallback routine attempts to obtain the IAD from the next interface and sets a BADD profile. However, snd_usb_mixer_controls_badd() assumes that the IAD retrieved from usb_ifnum_to_if() is always valid, without performing a NULL check. This can lead to a NULL pointer dereference when usb_ifnum_to_if() fails to find the interface descriptor.  This patch adds a NULL pointer check after calling usb_ifnum_to_if() in snd_usb_mixer_controls_badd() to prevent the dereference.  This issue was discovered by syzkaller, which triggered the bug by sending a crafted USB device descriptor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40277",
                        "url": "https://ubuntu.com/security/CVE-2025-40277",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vmwgfx: Validate command header size against SVGA_CMD_MAX_DATASIZE  This data originates from userspace and is used in buffer offset calculations which could potentially overflow causing an out-of-bounds access.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40278",
                        "url": "https://ubuntu.com/security/CVE-2025-40278",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak  Fix a KMSAN kernel-infoleak detected  by the syzbot .  [net?] KMSAN: kernel-infoleak in __skb_datagram_iter  In tcf_ife_dump(), the variable 'opt' was partially initialized using a designatied initializer. While the padding bytes are reamined uninitialized. nla_put() copies the entire structure into a netlink message, these uninitialized bytes leaked to userspace.  Initialize the structure with memset before assigning its fields to ensure all members and padding are cleared prior to beign copied.  This change silences the KMSAN report and prevents potential information leaks from the kernel memory.  This fix has been tested and validated by syzbot. This patch closes the bug reported at the following syzkaller link and ensures no infoleak.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40279",
                        "url": "https://ubuntu.com/security/CVE-2025-40279",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: act_connmark: initialize struct tc_ife to fix kernel leak  In tcf_connmark_dump(), the variable 'opt' was partially initialized using a designatied initializer. While the padding bytes are reamined uninitialized. nla_put() copies the entire structure into a netlink message, these uninitialized bytes leaked to userspace.  Initialize the structure with memset before assigning its fields to ensure all members and padding are cleared prior to beign copied.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40280",
                        "url": "https://ubuntu.com/security/CVE-2025-40280",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tipc: Fix use-after-free in tipc_mon_reinit_self().  syzbot reported use-after-free of tipc_net(net)->monitors[] in tipc_mon_reinit_self(). [0]  The array is protected by RTNL, but tipc_mon_reinit_self() iterates over it without RTNL.  tipc_mon_reinit_self() is called from tipc_net_finalize(), which is always under RTNL except for tipc_net_finalize_work().  Let's hold RTNL in tipc_net_finalize_work().  [0]: BUG: KASAN: slab-use-after-free in __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] BUG: KASAN: slab-use-after-free in _raw_spin_lock_irqsave+0xa7/0xf0 kernel/locking/spinlock.c:162 Read of size 1 at addr ffff88805eae1030 by task kworker/0:7/5989  CPU: 0 UID: 0 PID: 5989 Comm: kworker/0:7 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025 Workqueue: events tipc_net_finalize_work Call Trace:  <TASK>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0xca/0x240 mm/kasan/report.c:482  kasan_report+0x118/0x150 mm/kasan/report.c:595  __kasan_check_byte+0x2a/0x40 mm/kasan/common.c:568  kasan_check_byte include/linux/kasan.h:399 [inline]  lock_acquire+0x8d/0x360 kernel/locking/lockdep.c:5842  __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]  _raw_spin_lock_irqsave+0xa7/0xf0 kernel/locking/spinlock.c:162  rtlock_slowlock kernel/locking/rtmutex.c:1894 [inline]  rwbase_rtmutex_lock_state kernel/locking/spinlock_rt.c:160 [inline]  rwbase_write_lock+0xd3/0x7e0 kernel/locking/rwbase_rt.c:244  rt_write_lock+0x76/0x110 kernel/locking/spinlock_rt.c:243  write_lock_bh include/linux/rwlock_rt.h:99 [inline]  tipc_mon_reinit_self+0x79/0x430 net/tipc/monitor.c:718  tipc_net_finalize+0x115/0x190 net/tipc/net.c:140  process_one_work kernel/workqueue.c:3236 [inline]  process_scheduled_works+0xade/0x17b0 kernel/workqueue.c:3319  worker_thread+0x8a0/0xda0 kernel/workqueue.c:3400  kthread+0x70e/0x8a0 kernel/kthread.c:463  ret_from_fork+0x439/0x7d0 arch/x86/kernel/process.c:148  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 6089:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x3e/0x80 mm/kasan/common.c:68  poison_kmalloc_redzone mm/kasan/common.c:388 [inline]  __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:405  kasan_kmalloc include/linux/kasan.h:260 [inline]  __kmalloc_cache_noprof+0x1a8/0x320 mm/slub.c:4407  kmalloc_noprof include/linux/slab.h:905 [inline]  kzalloc_noprof include/linux/slab.h:1039 [inline]  tipc_mon_create+0xc3/0x4d0 net/tipc/monitor.c:657  tipc_enable_bearer net/tipc/bearer.c:357 [inline]  __tipc_nl_bearer_enable+0xe16/0x13f0 net/tipc/bearer.c:1047  __tipc_nl_compat_doit net/tipc/netlink_compat.c:371 [inline]  tipc_nl_compat_doit+0x3bc/0x5f0 net/tipc/netlink_compat.c:393  tipc_nl_compat_handle net/tipc/netlink_compat.c:-1 [inline]  tipc_nl_compat_recv+0x83c/0xbe0 net/tipc/netlink_compat.c:1321  genl_family_rcv_msg_doit+0x215/0x300 net/netlink/genetlink.c:1115  genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]  genl_rcv_msg+0x60e/0x790 net/netlink/genetlink.c:1210  netlink_rcv_skb+0x208/0x470 net/netlink/af_netlink.c:2552  genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219  netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]  netlink_unicast+0x846/0xa10 net/netlink/af_netlink.c:1346  netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1896  sock_sendmsg_nosec net/socket.c:714 [inline]  __sock_sendmsg+0x21c/0x270 net/socket.c:729  ____sys_sendmsg+0x508/0x820 net/socket.c:2614  ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2668  __sys_sendmsg net/socket.c:2700 [inline]  __do_sys_sendmsg net/socket.c:2705 [inline]  __se_sys_sendmsg net/socket.c:2703 [inline]  __x64_sys_sendmsg+0x1a1/0x260 net/socket.c:2703  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0x3b0 arch/ ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40281",
                        "url": "https://ubuntu.com/security/CVE-2025-40281",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: prevent possible shift-out-of-bounds in sctp_transport_update_rto  syzbot reported a possible shift-out-of-bounds [1]  Blamed commit added rto_alpha_max and rto_beta_max set to 1000.  It is unclear if some sctp users are setting very large rto_alpha and/or rto_beta.  In order to prevent user regression, perform the test at run time.  Also add READ_ONCE() annotations as sysctl values can change under us.  [1]  UBSAN: shift-out-of-bounds in net/sctp/transport.c:509:41 shift exponent 64 is too large for 32-bit type 'unsigned int' CPU: 0 UID: 0 PID: 16704 Comm: syz.2.2320 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 Call Trace:  <TASK>   __dump_stack lib/dump_stack.c:94 [inline]   dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120   ubsan_epilogue lib/ubsan.c:233 [inline]   __ubsan_handle_shift_out_of_bounds+0x27f/0x420 lib/ubsan.c:494   sctp_transport_update_rto.cold+0x1c/0x34b net/sctp/transport.c:509   sctp_check_transmitted+0x11c4/0x1c30 net/sctp/outqueue.c:1502   sctp_outq_sack+0x4ef/0x1b20 net/sctp/outqueue.c:1338   sctp_cmd_process_sack net/sctp/sm_sideeffect.c:840 [inline]   sctp_cmd_interpreter net/sctp/sm_sideeffect.c:1372 [inline]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40282",
                        "url": "https://ubuntu.com/security/CVE-2025-40282",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: 6lowpan: reset link-local header on ipv6 recv path  Bluetooth 6lowpan.c netdev has header_ops, so it must set link-local header for RX skb, otherwise things crash, eg. with AF_PACKET SOCK_RAW  Add missing skb_reset_mac_header() for uncompressed ipv6 RX path.  For the compressed one, it is done in lowpan_header_decompress().  Log: (BlueZ 6lowpan-tester Client Recv Raw - Success) ------ kernel BUG at net/core/skbuff.c:212! Call Trace: <IRQ> ... packet_rcv (net/packet/af_packet.c:2152) ... <TASK> __local_bh_enable_ip (kernel/softirq.c:407) netif_rx (net/core/dev.c:5648) chan_recv_cb (net/bluetooth/6lowpan.c:294 net/bluetooth/6lowpan.c:359) ------",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40283",
                        "url": "https://ubuntu.com/security/CVE-2025-40283",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: btusb: reorder cleanup in btusb_disconnect to avoid UAF  There is a KASAN: slab-use-after-free read in btusb_disconnect(). Calling \"usb_driver_release_interface(&btusb_driver, data->intf)\" will free the btusb data associated with the interface. The same data is then used later in the function, hence the UAF.  Fix by moving the accesses to btusb data to before the data is free'd.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68244",
                        "url": "https://ubuntu.com/security/CVE-2025-68244",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915: Avoid lock inversion when pinning to GGTT on CHV/BXT+VTD  On completion of i915_vma_pin_ww(), a synchronous variant of dma_fence_work_commit() is called.  When pinning a VMA to GGTT address space on a Cherry View family processor, or on a Broxton generation SoC with VTD enabled, i.e., when stop_machine() is then called from intel_ggtt_bind_vma(), that can potentially lead to lock inversion among reservation_ww and cpu_hotplug locks.  [86.861179] ====================================================== [86.861193] WARNING: possible circular locking dependency detected [86.861209] 6.15.0-rc5-CI_DRM_16515-gca0305cadc2d+ #1 Tainted: G     U [86.861226] ------------------------------------------------------ [86.861238] i915_module_loa/1432 is trying to acquire lock: [86.861252] ffffffff83489090 (cpu_hotplug_lock){++++}-{0:0}, at: stop_machine+0x1c/0x50 [86.861290] but task is already holding lock: [86.861303] ffffc90002e0b4c8 (reservation_ww_class_mutex){+.+.}-{3:3}, at: i915_vma_pin.constprop.0+0x39/0x1d0 [i915] [86.862233] which lock already depends on the new lock. [86.862251] the existing dependency chain (in reverse order) is: [86.862265] -> #5 (reservation_ww_class_mutex){+.+.}-{3:3}: [86.862292]        dma_resv_lockdep+0x19a/0x390 [86.862315]        do_one_initcall+0x60/0x3f0 [86.862334]        kernel_init_freeable+0x3cd/0x680 [86.862353]        kernel_init+0x1b/0x200 [86.862369]        ret_from_fork+0x47/0x70 [86.862383]        ret_from_fork_asm+0x1a/0x30 [86.862399] -> #4 (reservation_ww_class_acquire){+.+.}-{0:0}: [86.862425]        dma_resv_lockdep+0x178/0x390 [86.862440]        do_one_initcall+0x60/0x3f0 [86.862454]        kernel_init_freeable+0x3cd/0x680 [86.862470]        kernel_init+0x1b/0x200 [86.862482]        ret_from_fork+0x47/0x70 [86.862495]        ret_from_fork_asm+0x1a/0x30 [86.862509] -> #3 (&mm->mmap_lock){++++}-{3:3}: [86.862531]        down_read_killable+0x46/0x1e0 [86.862546]        lock_mm_and_find_vma+0xa2/0x280 [86.862561]        do_user_addr_fault+0x266/0x8e0 [86.862578]        exc_page_fault+0x8a/0x2f0 [86.862593]        asm_exc_page_fault+0x27/0x30 [86.862607]        filldir64+0xeb/0x180 [86.862620]        kernfs_fop_readdir+0x118/0x480 [86.862635]        iterate_dir+0xcf/0x2b0 [86.862648]        __x64_sys_getdents64+0x84/0x140 [86.862661]        x64_sys_call+0x1058/0x2660 [86.862675]        do_syscall_64+0x91/0xe90 [86.862689]        entry_SYSCALL_64_after_hwframe+0x76/0x7e [86.862703] -> #2 (&root->kernfs_rwsem){++++}-{3:3}: [86.862725]        down_write+0x3e/0xf0 [86.862738]        kernfs_add_one+0x30/0x3c0 [86.862751]        kernfs_create_dir_ns+0x53/0xb0 [86.862765]        internal_create_group+0x134/0x4c0 [86.862779]        sysfs_create_group+0x13/0x20 [86.862792]        topology_add_dev+0x1d/0x30 [86.862806]        cpuhp_invoke_callback+0x4b5/0x850 [86.862822]        cpuhp_issue_call+0xbf/0x1f0 [86.862836]        __cpuhp_setup_state_cpuslocked+0x111/0x320 [86.862852]        __cpuhp_setup_state+0xb0/0x220 [86.862866]        topology_sysfs_init+0x30/0x50 [86.862879]        do_one_initcall+0x60/0x3f0 [86.862893]        kernel_init_freeable+0x3cd/0x680 [86.862908]        kernel_init+0x1b/0x200 [86.862921]        ret_from_fork+0x47/0x70 [86.862934]        ret_from_fork_asm+0x1a/0x30 [86.862947] -> #1 (cpuhp_state_mutex){+.+.}-{3:3}: [86.862969]        __mutex_lock+0xaa/0xed0 [86.862982]        mutex_lock_nested+0x1b/0x30 [86.862995]        __cpuhp_setup_state_cpuslocked+0x67/0x320 [86.863012]        __cpuhp_setup_state+0xb0/0x220 [86.863026]        page_alloc_init_cpuhp+0x2d/0x60 [86.863041]        mm_core_init+0x22/0x2d0 [86.863054]        start_kernel+0x576/0xbd0 [86.863068]        x86_64_start_reservations+0x18/0x30 [86.863084]        x86_64_start_kernel+0xbf/0x110 [86.863098]        common_startup_64+0x13e/0x141 [86.863114] -> #0 (cpu_hotplug_lock){++++}-{0:0}: [86.863135]        __lock_acquire+0x16 ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68192",
                        "url": "https://ubuntu.com/security/CVE-2025-68192",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: qmi_wwan: initialize MAC header offset in qmimux_rx_fixup  Raw IP packets have no MAC header, leaving skb->mac_header uninitialized. This can trigger kernel panics on ARM64 when xfrm or other subsystems access the offset due to strict alignment checks.  Initialize the MAC header to prevent such crashes.  This can trigger kernel panics on ARM when running IPsec over the qmimux0 interface.  Example trace:      Internal error: Oops: 000000009600004f [#1] SMP     CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.12.34-gbe78e49cb433 #1     Hardware name: LS1028A RDB Board (DT)     pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)     pc : xfrm_input+0xde8/0x1318     lr : xfrm_input+0x61c/0x1318     sp : ffff800080003b20     Call trace:      xfrm_input+0xde8/0x1318      xfrm6_rcv+0x38/0x44      xfrm6_esp_rcv+0x48/0xa8      ip6_protocol_deliver_rcu+0x94/0x4b0      ip6_input_finish+0x44/0x70      ip6_input+0x44/0xc0      ipv6_rcv+0x6c/0x114      __netif_receive_skb_one_core+0x5c/0x8c      __netif_receive_skb+0x18/0x60      process_backlog+0x78/0x17c      __napi_poll+0x38/0x180      net_rx_action+0x168/0x2f0",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40331",
                        "url": "https://ubuntu.com/security/CVE-2025-40331",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: Prevent TOCTOU out-of-bounds write  For the following path not holding the sock lock,    sctp_diag_dump() -> sctp_for_each_endpoint() -> sctp_ep_dump()  make sure not to exceed bounds in case the address list has grown between buffer allocation (time-of-check) and write (time-of-use).",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-09 16:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40304",
                        "url": "https://ubuntu.com/security/CVE-2025-40304",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fbdev: Add bounds checking in bit_putcs to fix vmalloc-out-of-bounds  Add bounds checking to prevent writes past framebuffer boundaries when rendering text near screen edges. Return early if the Y position is off-screen and clip image height to screen boundary. Break from the rendering loop if the X position is off-screen. When clipping image width to fit the screen, update the character count to match the clipped width to prevent buffer size mismatches.  Without the character count update, bit_putcs_aligned and bit_putcs_unaligned receive mismatched parameters where the buffer is allocated for the clipped width but cnt reflects the original larger count, causing out-of-bounds writes.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40306",
                        "url": "https://ubuntu.com/security/CVE-2025-40306",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  orangefs: fix xattr related buffer overflow...  Willy Tarreau <w@1wt.eu> forwarded me a message from Disclosure <disclosure@aisle.com> with the following warning:  > The helper `xattr_key()` uses the pointer variable in the loop condition > rather than dereferencing it. As `key` is incremented, it remains non-NULL > (until it runs into unmapped memory), so the loop does not terminate on > valid C strings and will walk memory indefinitely, consuming CPU or hanging > the thread.  I easily reproduced this with setfattr and getfattr, causing a kernel oops, hung user processes and corrupted orangefs files. Disclosure sent along a diff (not a patch) with a suggested fix, which I based this patch on.  After xattr_key started working right, xfstest generic/069 exposed an xattr related memory leak that lead to OOM. xattr_key returns a hashed key.  When adding xattrs to the orangefs xattr cache, orangefs used hash_add, a kernel hashing macro. hash_add also hashes the key using hash_log which resulted in additions to the xattr cache going to the wrong hash bucket. generic/069 tortures a single file and orangefs does a getattr for the xattr \"security.capability\" every time. Orangefs negative caches on xattrs which includes a kmalloc. Since adds to the xattr cache were going to the wrong bucket, every getattr for \"security.capability\" resulted in another kmalloc, none of which were ever freed.  I changed the two uses of hash_add to hlist_add_head instead and the memory leak ceased and generic/069 quit throwing furniture.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40308",
                        "url": "https://ubuntu.com/security/CVE-2025-40308",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: bcsp: receive data only if registered  Currently, bcsp_recv() can be called even when the BCSP protocol has not been registered. This leads to a NULL pointer dereference, as shown in the following stack trace:      KASAN: null-ptr-deref in range [0x0000000000000108-0x000000000000010f]     RIP: 0010:bcsp_recv+0x13d/0x1740 drivers/bluetooth/hci_bcsp.c:590     Call Trace:      <TASK>      hci_uart_tty_receive+0x194/0x220 drivers/bluetooth/hci_ldisc.c:627      tiocsti+0x23c/0x2c0 drivers/tty/tty_io.c:2290      tty_ioctl+0x626/0xde0 drivers/tty/tty_io.c:2706      vfs_ioctl fs/ioctl.c:51 [inline]      __do_sys_ioctl fs/ioctl.c:907 [inline]      __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:893      do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]      do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94      entry_SYSCALL_64_after_hwframe+0x77/0x7f  To prevent this, ensure that the HCI_UART_REGISTERED flag is set before processing received data. If the protocol is not registered, return -EUNATCH.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40309",
                        "url": "https://ubuntu.com/security/CVE-2025-40309",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: SCO: Fix UAF on sco_conn_free  BUG: KASAN: slab-use-after-free in sco_conn_free net/bluetooth/sco.c:87 [inline] BUG: KASAN: slab-use-after-free in kref_put include/linux/kref.h:65 [inline] BUG: KASAN: slab-use-after-free in sco_conn_put+0xdd/0x410 net/bluetooth/sco.c:107 Write of size 8 at addr ffff88811cb96b50 by task kworker/u17:4/352  CPU: 1 UID: 0 PID: 352 Comm: kworker/u17:4 Not tainted 6.17.0-rc5-g717368f83676 #4 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 Workqueue: hci13 hci_cmd_sync_work Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x10b/0x170 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0x191/0x550 mm/kasan/report.c:482  kasan_report+0xc4/0x100 mm/kasan/report.c:595  sco_conn_free net/bluetooth/sco.c:87 [inline]  kref_put include/linux/kref.h:65 [inline]  sco_conn_put+0xdd/0x410 net/bluetooth/sco.c:107  sco_connect_cfm+0xb4/0xae0 net/bluetooth/sco.c:1441  hci_connect_cfm include/net/bluetooth/hci_core.h:2082 [inline]  hci_conn_failed+0x20a/0x2e0 net/bluetooth/hci_conn.c:1313  hci_conn_unlink+0x55f/0x810 net/bluetooth/hci_conn.c:1121  hci_conn_del+0xb6/0x1110 net/bluetooth/hci_conn.c:1147  hci_abort_conn_sync+0x8c5/0xbb0 net/bluetooth/hci_sync.c:5689  hci_cmd_sync_work+0x281/0x380 net/bluetooth/hci_sync.c:332  process_one_work kernel/workqueue.c:3236 [inline]  process_scheduled_works+0x77e/0x1040 kernel/workqueue.c:3319  worker_thread+0xbee/0x1200 kernel/workqueue.c:3400  kthread+0x3c7/0x870 kernel/kthread.c:463  ret_from_fork+0x13a/0x1e0 arch/x86/kernel/process.c:148  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 31370:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x30/0x70 mm/kasan/common.c:68  poison_kmalloc_redzone mm/kasan/common.c:388 [inline]  __kasan_kmalloc+0x82/0x90 mm/kasan/common.c:405  kasan_kmalloc include/linux/kasan.h:260 [inline]  __do_kmalloc_node mm/slub.c:4382 [inline]  __kmalloc_noprof+0x22f/0x390 mm/slub.c:4394  kmalloc_noprof include/linux/slab.h:909 [inline]  sk_prot_alloc+0xae/0x220 net/core/sock.c:2239  sk_alloc+0x34/0x5a0 net/core/sock.c:2295  bt_sock_alloc+0x3c/0x330 net/bluetooth/af_bluetooth.c:151  sco_sock_alloc net/bluetooth/sco.c:562 [inline]  sco_sock_create+0xc0/0x350 net/bluetooth/sco.c:593  bt_sock_create+0x161/0x3b0 net/bluetooth/af_bluetooth.c:135  __sock_create+0x3ad/0x780 net/socket.c:1589  sock_create net/socket.c:1647 [inline]  __sys_socket_create net/socket.c:1684 [inline]  __sys_socket+0xd5/0x330 net/socket.c:1731  __do_sys_socket net/socket.c:1745 [inline]  __se_sys_socket net/socket.c:1743 [inline]  __x64_sys_socket+0x7a/0x90 net/socket.c:1743  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xc7/0x240 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 31374:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x30/0x70 mm/kasan/common.c:68  kasan_save_free_info+0x40/0x50 mm/kasan/generic.c:576  poison_slab_object mm/kasan/common.c:243 [inline]  __kasan_slab_free+0x3d/0x50 mm/kasan/common.c:275  kasan_slab_free include/linux/kasan.h:233 [inline]  slab_free_hook mm/slub.c:2428 [inline]  slab_free mm/slub.c:4701 [inline]  kfree+0x199/0x3b0 mm/slub.c:4900  sk_prot_free net/core/sock.c:2278 [inline]  __sk_destruct+0x4aa/0x630 net/core/sock.c:2373  sco_sock_release+0x2ad/0x300 net/bluetooth/sco.c:1333  __sock_release net/socket.c:649 [inline]  sock_close+0xb8/0x230 net/socket.c:1439  __fput+0x3d1/0x9e0 fs/file_table.c:468  task_work_run+0x206/0x2a0 kernel/task_work.c:227  get_signal+0x1201/0x1410 kernel/signal.c:2807  arch_do_signal_or_restart+0x34/0x740 arch/x86/kernel/signal.c:337  exit_to_user_mode_loop+0x68/0xc0 kernel/entry/common.c:40  exit_to_user_mode_prepare include/linux/irq-entry-common.h:225 [inline]  s ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40361",
                        "url": "https://ubuntu.com/security/CVE-2025-40361",
                        "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68185",
                        "url": "https://ubuntu.com/security/CVE-2025-68185",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfs4_setup_readdir(): insufficient locking for ->d_parent->d_inode dereferencing  Theoretically it's an oopsable race, but I don't believe one can manage to hit it on real hardware; might become doable on a KVM, but it still won't be easy to attack.  Anyway, it's easy to deal with - since xdr_encode_hyper() is just a call of put_unaligned_be64(), we can put that under ->d_lock and be done with that.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68176",
                        "url": "https://ubuntu.com/security/CVE-2025-68176",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  PCI: cadence: Check for the existence of cdns_pcie::ops before using it  cdns_pcie::ops might not be populated by all the Cadence glue drivers. This is going to be true for the upcoming Sophgo platform which doesn't set the ops.  Hence, add a check to prevent NULL pointer dereference.  [mani: reworded subject and description]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68168",
                        "url": "https://ubuntu.com/security/CVE-2025-68168",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jfs: fix uninitialized waitqueue in transaction manager  The transaction manager initialization in txInit() was not properly initializing TxBlock[0].waitor waitqueue, causing a crash when txEnd(0) is called on read-only filesystems.  When a filesystem is mounted read-only, txBegin() returns tid=0 to indicate no transaction. However, txEnd(0) still gets called and tries to access TxBlock[0].waitor via tid_to_tblock(0), but this waitqueue was never initialized because the initialization loop started at index 1 instead of 0.  This causes a 'non-static key' lockdep warning and system crash:   INFO: trying to register non-static key in txEnd  Fix by ensuring all transaction blocks including TxBlock[0] have their waitqueues properly initialized during txInit().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40312",
                        "url": "https://ubuntu.com/security/CVE-2025-40312",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jfs: Verify inode mode when loading from disk  The inode mode loaded from corrupted disk can be invalid. Do like what commit 0a9e74051313 (\"isofs: Verify inode mode when loading from disk\") does.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68321",
                        "url": "https://ubuntu.com/security/CVE-2025-68321",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  page_pool: always add GFP_NOWARN for ATOMIC allocations  Driver authors often forget to add GFP_NOWARN for page allocation from the datapath. This is annoying to users as OOMs are a fact of life, and we pretty much expect network Rx to hit page allocation failures during OOM. Make page pool add GFP_NOWARN for ATOMIC allocations by default.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68191",
                        "url": "https://ubuntu.com/security/CVE-2025-68191",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  udp_tunnel: use netdev_warn() instead of netdev_WARN()  netdev_WARN() uses WARN/WARN_ON to print a backtrace along with file and line information. In this case, udp_tunnel_nic_register() returning an error is just a failed operation, not a kernel bug.  udp_tunnel_nic_register() can fail due to a memory allocation failure (kzalloc() or udp_tunnel_nic_alloc()). This is a normal runtime error and not a kernel bug.  Replace netdev_WARN() with netdev_warn() accordingly.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40313",
                        "url": "https://ubuntu.com/security/CVE-2025-40313",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: pretend $Extend records as regular files  Since commit af153bb63a33 (\"vfs: catch invalid modes in may_open()\") requires any inode be one of S_IFDIR/S_IFLNK/S_IFREG/S_IFCHR/S_IFBLK/ S_IFIFO/S_IFSOCK type, use S_IFREG for $Extend records.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40314",
                        "url": "https://ubuntu.com/security/CVE-2025-40314",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: cdns3: gadget: Use-after-free during failed initialization and exit of cdnsp gadget  In the __cdnsp_gadget_init() and cdnsp_gadget_exit() functions, the gadget structure (pdev->gadget) was freed before its endpoints. The endpoints are linked via the ep_list in the gadget structure. Freeing the gadget first leaves dangling pointers in the endpoint list. When the endpoints are subsequently freed, this results in a use-after-free.  Fix: By separating the usb_del_gadget_udc() operation into distinct \"del\" and \"put\" steps, cdnsp_gadget_free_endpoints() can be executed prior to the final release of the gadget structure with usb_put_gadget().  A patch similar to bb9c74a5bd14(\"usb: dwc3: gadget: Free gadget structure  only after freeing endpoints\").",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68194",
                        "url": "https://ubuntu.com/security/CVE-2025-68194",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: imon: make send_packet() more robust  syzbot is reporting that imon has three problems which result in hung tasks due to forever holding device lock [1].  First problem is that when usb_rx_callback_intf0() once got -EPROTO error after ictx->dev_present_intf0 became true, usb_rx_callback_intf0() resubmits urb after printk(), and resubmitted urb causes usb_rx_callback_intf0() to again get -EPROTO error. This results in printk() flooding (RCU stalls).  Alan Stern commented [2] that    In theory it's okay to resubmit _if_ the driver has a robust   error-recovery scheme (such as giving up after some fixed limit on the   number of errors or after some fixed time has elapsed, perhaps with a   time delay to prevent a flood of errors).  Most drivers don't bother to   do this; they simply give up right away.  This makes them more   vulnerable to short-term noise interference during USB transfers, but in   reality such interference is quite rare.  There's nothing really wrong   with giving up right away.  but imon has a poor error-recovery scheme which just retries forever; this behavior should be fixed.  Since I'm not sure whether it is safe for imon users to give up upon any error code, this patch takes care of only union of error codes chosen from modules in drivers/media/rc/ directory which handle -EPROTO error (i.e. ir_toy, mceusb and igorplugusb).  Second problem is that when usb_rx_callback_intf0() once got -EPROTO error before ictx->dev_present_intf0 becomes true, usb_rx_callback_intf0() always resubmits urb due to commit 8791d63af0cf (\"[media] imon: don't wedge hardware after early callbacks\"). Move the ictx->dev_present_intf0 test introduced by commit 6f6b90c9231a (\"[media] imon: don't parse scancodes until intf configured\") to immediately before imon_incoming_packet(), or the first problem explained above happens without printk() flooding (i.e. hung task).  Third problem is that when usb_rx_callback_intf0() is not called for some reason (e.g. flaky hardware; the reproducer for this problem sometimes prevents usb_rx_callback_intf0() from being called), wait_for_completion_interruptible() in send_packet() never returns (i.e. hung task). As a workaround for such situation, change send_packet() to wait for completion with timeout of 10 seconds.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40363",
                        "url": "https://ubuntu.com/security/CVE-2025-40363",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: ipv6: fix field-spanning memcpy warning in AH output  Fix field-spanning memcpy warnings in ah6_output() and ah6_output_done() where extension headers are copied to/from IPv6 address fields, triggering fortify-string warnings about writes beyond the 16-byte address fields.    memcpy: detected field-spanning write (size 40) of single field \"&top_iph->saddr\" at net/ipv6/ah6.c:439 (size 16)   WARNING: CPU: 0 PID: 8838 at net/ipv6/ah6.c:439 ah6_output+0xe7e/0x14e0 net/ipv6/ah6.c:439  The warnings are false positives as the extension headers are intentionally placed after the IPv6 header in memory. Fix by properly copying addresses and extension headers separately, and introduce helper functions to avoid code duplication.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40342",
                        "url": "https://ubuntu.com/security/CVE-2025-40342",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-fc: use lock accessing port_state and rport state  nvme_fc_unregister_remote removes the remote port on a lport object at any point in time when there is no active association. This races with with the reconnect logic, because nvme_fc_create_association is not taking a lock to check the port_state and atomically increase the active count on the rport.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-09 16:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40343",
                        "url": "https://ubuntu.com/security/CVE-2025-40343",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-fc: avoid scheduling association deletion twice  When forcefully shutting down a port via the configfs interface, nvmet_port_subsys_drop_link() first calls nvmet_port_del_ctrls() and then nvmet_disable_port(). Both functions will eventually schedule all remaining associations for deletion.  The current implementation checks whether an association is about to be removed, but only after the work item has already been scheduled. As a result, it is possible for the first scheduled work item to free all resources, and then for the same work item to be scheduled again for deletion.  Because the association list is an RCU list, it is not possible to take a lock and remove the list entry directly, so it cannot be looked up again. Instead, a flag (terminating) must be used to determine whether the association is already in the process of being deleted.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-09 16:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68177",
                        "url": "https://ubuntu.com/security/CVE-2025-68177",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  cpufreq/longhaul: handle NULL policy in longhaul_exit  longhaul_exit() was calling cpufreq_cpu_get(0) without checking for a NULL policy pointer. On some systems, this could lead to a NULL dereference and a kernel warning or panic.  This patch adds a check using unlikely() and returns early if the policy is NULL.  Bugzilla: #219962",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40360",
                        "url": "https://ubuntu.com/security/CVE-2025-40360",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/sysfb: Do not dereference NULL pointer in plane reset  The plane state in __drm_gem_reset_shadow_plane() can be NULL. Do not deref that pointer, but forward NULL to the other plane-reset helpers. Clears plane->state to NULL.  v2: - fix typo in commit description (Javier)",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40315",
                        "url": "https://ubuntu.com/security/CVE-2025-40315",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: f_fs: Fix epfile null pointer access after ep enable.  A race condition occurs when ffs_func_eps_enable() runs concurrently with ffs_data_reset(). The ffs_data_clear() called in ffs_data_reset() sets ffs->epfiles to NULL before resetting ffs->eps_count to 0, leading to a NULL pointer dereference when accessing epfile->ep in ffs_func_eps_enable() after successful usb_ep_enable().  The ffs->epfiles pointer is set to NULL in both ffs_data_clear() and ffs_data_close() functions, and its modification is protected by the spinlock ffs->eps_lock. And the whole ffs_func_eps_enable() function is also protected by ffs->eps_lock.  Thus, add NULL pointer handling for ffs->epfiles in the ffs_func_eps_enable() function to fix issues",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40317",
                        "url": "https://ubuntu.com/security/CVE-2025-40317",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: slimbus: fix bus_context pointer in regmap init calls  Commit 4e65bda8273c (\"ASoC: wcd934x: fix error handling in wcd934x_codec_parse_data()\") revealed the problem in the slimbus regmap. That commit breaks audio playback, for instance, on sdm845 Thundercomm Dragonboard 845c board:   Unable to handle kernel paging request at virtual address ffff8000847cbad4  ...  CPU: 5 UID: 0 PID: 776 Comm: aplay Not tainted 6.18.0-rc1-00028-g7ea30958b305 #11 PREEMPT  Hardware name: Thundercomm Dragonboard 845c (DT)  ...  Call trace:   slim_xfer_msg+0x24/0x1ac [slimbus] (P)   slim_read+0x48/0x74 [slimbus]   regmap_slimbus_read+0x18/0x24 [regmap_slimbus]   _regmap_raw_read+0xe8/0x174   _regmap_bus_read+0x44/0x80   _regmap_read+0x60/0xd8   _regmap_update_bits+0xf4/0x140   _regmap_select_page+0xa8/0x124   _regmap_raw_write_impl+0x3b8/0x65c   _regmap_bus_raw_write+0x60/0x80   _regmap_write+0x58/0xc0   regmap_write+0x4c/0x80   wcd934x_hw_params+0x494/0x8b8 [snd_soc_wcd934x]   snd_soc_dai_hw_params+0x3c/0x7c [snd_soc_core]   __soc_pcm_hw_params+0x22c/0x634 [snd_soc_core]   dpcm_be_dai_hw_params+0x1d4/0x38c [snd_soc_core]   dpcm_fe_dai_hw_params+0x9c/0x17c [snd_soc_core]   snd_pcm_hw_params+0x124/0x464 [snd_pcm]   snd_pcm_common_ioctl+0x110c/0x1820 [snd_pcm]   snd_pcm_ioctl+0x34/0x4c [snd_pcm]   __arm64_sys_ioctl+0xac/0x104   invoke_syscall+0x48/0x104   el0_svc_common.constprop.0+0x40/0xe0   do_el0_svc+0x1c/0x28   el0_svc+0x34/0xec   el0t_64_sync_handler+0xa0/0xf0   el0t_64_sync+0x198/0x19c  The __devm_regmap_init_slimbus() started to be used instead of __regmap_init_slimbus() after the commit mentioned above and turns out the incorrect bus_context pointer (3rd argument) was used in __devm_regmap_init_slimbus(). It should be just \"slimbus\" (which is equal to &slimbus->dev). Correct it. The wcd934x codec seems to be the only or the first user of devm_regmap_init_slimbus() but we should fix it till the point where __devm_regmap_init_slimbus() was introduced therefore two \"Fixes\" tags.  While at this, also correct the same argument in __regmap_init_slimbus().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68312",
                        "url": "https://ubuntu.com/security/CVE-2025-68312",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usbnet: Prevents free active kevent  The root cause of this issue are: 1. When probing the usbnet device, executing usbnet_link_change(dev, 0, 0); put the kevent work in global workqueue. However, the kevent has not yet been scheduled when the usbnet device is unregistered. Therefore, executing free_netdev() results in the \"free active object (kevent)\" error reported here.  2. Another factor is that when calling usbnet_disconnect()->unregister_netdev(), if the usbnet device is up, ndo_stop() is executed to cancel the kevent. However, because the device is not up, ndo_stop() is not executed.  The solution to this problem is to cancel the kevent before executing free_netdev().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40319",
                        "url": "https://ubuntu.com/security/CVE-2025-40319",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Sync pending IRQ work before freeing ring buffer  Fix a race where irq_work can be queued in bpf_ringbuf_commit() but the ring buffer is freed before the work executes. In the syzbot reproducer, a BPF program attached to sched_switch triggers bpf_ringbuf_commit(), queuing an irq_work. If the ring buffer is freed before this work executes, the irq_work thread may accesses freed memory. Calling `irq_work_sync(&rb->work)` ensures that all pending irq_work complete before freeing the buffer.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40321",
                        "url": "https://ubuntu.com/security/CVE-2025-40321",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: brcmfmac: fix crash while sending Action Frames in standalone AP Mode  Currently, whenever there is a need to transmit an Action frame, the brcmfmac driver always uses the P2P vif to send the \"actframe\" IOVAR to firmware. The P2P interfaces were available when wpa_supplicant is managing the wlan interface.  However, the P2P interfaces are not created/initialized when only hostapd is managing the wlan interface. And if hostapd receives an ANQP Query REQ Action frame even from an un-associated STA, the brcmfmac driver tries to use an uninitialized P2P vif pointer for sending the IOVAR to firmware. This NULL pointer dereferencing triggers a driver crash.   [ 1417.074538] Unable to handle kernel NULL pointer dereference at virtual  address 0000000000000000  [...]  [ 1417.075188] Hardware name: Raspberry Pi 4 Model B Rev 1.5 (DT)  [...]  [ 1417.075653] Call trace:  [ 1417.075662]  brcmf_p2p_send_action_frame+0x23c/0xc58 [brcmfmac]  [ 1417.075738]  brcmf_cfg80211_mgmt_tx+0x304/0x5c0 [brcmfmac]  [ 1417.075810]  cfg80211_mlme_mgmt_tx+0x1b0/0x428 [cfg80211]  [ 1417.076067]  nl80211_tx_mgmt+0x238/0x388 [cfg80211]  [ 1417.076281]  genl_family_rcv_msg_doit+0xe0/0x158  [ 1417.076302]  genl_rcv_msg+0x220/0x2a0  [ 1417.076317]  netlink_rcv_skb+0x68/0x140  [ 1417.076330]  genl_rcv+0x40/0x60  [ 1417.076343]  netlink_unicast+0x330/0x3b8  [ 1417.076357]  netlink_sendmsg+0x19c/0x3f8  [ 1417.076370]  __sock_sendmsg+0x64/0xc0  [ 1417.076391]  ____sys_sendmsg+0x268/0x2a0  [ 1417.076408]  ___sys_sendmsg+0xb8/0x118  [ 1417.076427]  __sys_sendmsg+0x90/0xf8  [ 1417.076445]  __arm64_sys_sendmsg+0x2c/0x40  [ 1417.076465]  invoke_syscall+0x50/0x120  [ 1417.076486]  el0_svc_common.constprop.0+0x48/0xf0  [ 1417.076506]  do_el0_svc+0x24/0x38  [ 1417.076525]  el0_svc+0x30/0x100  [ 1417.076548]  el0t_64_sync_handler+0x100/0x130  [ 1417.076569]  el0t_64_sync+0x190/0x198  [ 1417.076589] Code: f9401e80 aa1603e2 f9403be1 5280e483 (f9400000)  Fix this, by always using the vif corresponding to the wdev on which the Action frame Transmission request was initiated by the userspace. This way, even if P2P vif is not available, the IOVAR is sent to firmware on AP vif and the ANQP Query RESP Action frame is transmitted without crashing the driver.  Move init_completion() for \"send_af_done\" from brcmf_p2p_create_p2pdev() to brcmf_p2p_attach(). Because the former function would not get executed when only hostapd is managing wlan interface, and it is not safe to do reinit_completion() later in brcmf_p2p_tx_action_frame(), without any prior init_completion().  And in the brcmf_p2p_tx_action_frame() function, the condition check for P2P Presence response frame is not needed, since the wpa_supplicant is properly sending the P2P Presense Response frame on the P2P-GO vif instead of the P2P-Device vif.  [Cc stable]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40322",
                        "url": "https://ubuntu.com/security/CVE-2025-40322",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fbdev: bitblit: bound-check glyph index in bit_putcs*  bit_putcs_aligned()/unaligned() derived the glyph pointer from the character value masked by 0xff/0x1ff, which may exceed the actual font's glyph count and read past the end of the built-in font array. Clamp the index to the actual glyph count before computing the address.  This fixes a global out-of-bounds read reported by syzbot.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40211",
                        "url": "https://ubuntu.com/security/CVE-2025-40211",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ACPI: video: Fix use-after-free in acpi_video_switch_brightness()  The switch_brightness_work delayed work accesses device->brightness and device->backlight, freed by acpi_video_dev_unregister_backlight() during device removal.  If the work executes after acpi_video_bus_unregister_backlight() frees these resources, it causes a use-after-free when acpi_video_switch_brightness() dereferences device->brightness or device->backlight.  Fix this by calling cancel_delayed_work_sync() for each device's switch_brightness_work in acpi_video_bus_remove_notify_handler() after removing the notify handler that queues the work. This ensures the work completes before the memory is freed.  [ rjw: Changelog edit ]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-21 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40324",
                        "url": "https://ubuntu.com/security/CVE-2025-40324",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: Fix crash in nfsd4_read_release()  When tracing is enabled, the trace_nfsd_read_done trace point crashes during the pynfs read.testNoFh test.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40083",
                        "url": "https://ubuntu.com/security/CVE-2025-40083",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: Fix null-deref in agg_dequeue  To prevent a potential crash in agg_dequeue (net/sched/sch_qfq.c) when cl->qdisc->ops->peek(cl->qdisc) returns NULL, we check the return value before using it, similar to the existing approach in sch_hfsc.c.  To avoid code duplication, the following changes are made:  1. Changed qdisc_warn_nonwc(include/net/pkt_sched.h) into a static inline function.  2. Moved qdisc_peek_len from net/sched/sch_hfsc.c to include/net/pkt_sched.h so that sch_qfq can reuse it.  3. Applied qdisc_peek_len in agg_dequeue to avoid crashing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-29 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-41014",
                        "url": "https://ubuntu.com/security/CVE-2024-41014",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  xfs: add bounds checking to xlog_recover_process_data  There is a lack of verification of the space occupied by fixed members of xlog_op_header in the xlog_recover_process_data.  We can create a crafted image to trigger an out of bounds read by following these steps:     1) Mount an image of xfs, and do some file operations to leave records     2) Before umounting, copy the image for subsequent steps to simulate        abnormal exit. Because umount will ensure that tail_blk and        head_blk are the same, which will result in the inability to enter        xlog_recover_process_data     3) Write a tool to parse and modify the copied image in step 2     4) Make the end of the xlog_op_header entries only 1 byte away from        xlog_rec_header->h_size     5) xlog_rec_header->h_num_logops++     6) Modify xlog_rec_header->h_crc  Fix: Add a check to make sure there is sufficient space to access fixed members of xlog_op_header.",
                        "cve_priority": "low",
                        "cve_public_date": "2024-07-29 07:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2022-49267",
                        "url": "https://ubuntu.com/security/CVE-2022-49267",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mmc: core: use sysfs_emit() instead of sprintf()  sprintf() (still used in the MMC core for the sysfs output) is vulnerable to the buffer overflow.  Use the new-fangled sysfs_emit() instead.  Found by Linux Verification Center (linuxtesting.org) with the SVACE static analysis tool.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-26 07:01:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-21780",
                        "url": "https://ubuntu.com/security/CVE-2025-21780",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdgpu: avoid buffer overflow attach in smu_sys_set_pp_table()  It malicious user provides a small pptable through sysfs and then a bigger pptable, it may cause buffer overflow attack in function smu_sys_set_pp_table().",
                        "cve_priority": "high",
                        "cve_public_date": "2025-02-27 03:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2141059,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Miscellaneous upstream changes",
                            "    - apparmor: validate DFA start states are in bounds in unpack_pdb",
                            "    - apparmor: fix memory leak in verify_header",
                            "    - apparmor: replace recursive profile removal with iterative approach",
                            "    - apparmor: fix: limit the number of levels of policy namespaces",
                            "    - apparmor: fix side-effect bug in match_char() macro usage",
                            "    - apparmor: fix missing bounds check on DEFAULT table in verify_dfa()",
                            "    - apparmor: Fix double free of ns_name in aa_replace_profiles()",
                            "    - apparmor: fix unprivileged local user can do privileged policy",
                            "      management",
                            "    - apparmor: fix differential encoding verification",
                            "    - apparmor: fix race on rawdata dereference",
                            "    - apparmor: fix race between freeing data and fs accessing it",
                            ""
                        ],
                        "package": "linux",
                        "version": "5.15.0-173.183",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Mehmet Basaran <mehmet.basaran@canonical.com>",
                        "date": "Fri, 06 Mar 2026 16:14:08 +0300"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-71182",
                                "url": "https://ubuntu.com/security/CVE-2025-71182",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: j1939: make j1939_session_activate() fail if device is no longer registered  syzbot is still reporting    unregister_netdevice: waiting for vcan0 to become free. Usage count = 2  even after commit 93a27b5891b8 (\"can: j1939: add missing calls in NETDEV_UNREGISTER notification handler\") was added. A debug printk() patch found that j1939_session_activate() can succeed even after j1939_cancel_active_session() from j1939_netdev_notify(NETDEV_UNREGISTER) has completed.  Since j1939_cancel_active_session() is processed with the session list lock held, checking ndev->reg_state in j1939_session_activate() with the session list lock held can reliably close the race window.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2022-49465",
                                "url": "https://ubuntu.com/security/CVE-2022-49465",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  blk-throttle: Set BIO_THROTTLED when bio has been throttled  1.In current process, all bio will set the BIO_THROTTLED flag after __blk_throtl_bio().  2.If bio needs to be throttled, it will start the timer and stop submit bio directly. Bio will submit in blk_throtl_dispatch_work_fn() when the timer expires.But in the current process, if bio is throttled. The BIO_THROTTLED will be set to bio after timer start. If the bio has been completed, it may cause use-after-free blow.  BUG: KASAN: use-after-free in blk_throtl_bio+0x12f0/0x2c70 Read of size 2 at addr ffff88801b8902d4 by task fio/26380   dump_stack+0x9b/0xce  print_address_description.constprop.6+0x3e/0x60  kasan_report.cold.9+0x22/0x3a  blk_throtl_bio+0x12f0/0x2c70  submit_bio_checks+0x701/0x1550  submit_bio_noacct+0x83/0xc80  submit_bio+0xa7/0x330  mpage_readahead+0x380/0x500  read_pages+0x1c1/0xbf0  page_cache_ra_unbounded+0x471/0x6f0  do_page_cache_ra+0xda/0x110  ondemand_readahead+0x442/0xae0  page_cache_async_ra+0x210/0x300  generic_file_buffered_read+0x4d9/0x2130  generic_file_read_iter+0x315/0x490  blkdev_read_iter+0x113/0x1b0  aio_read+0x2ad/0x450  io_submit_one+0xc8e/0x1d60  __se_sys_io_submit+0x125/0x350  do_syscall_64+0x2d/0x40  entry_SYSCALL_64_after_hwframe+0x44/0xa9  Allocated by task 26380:  kasan_save_stack+0x19/0x40  __kasan_kmalloc.constprop.2+0xc1/0xd0  kmem_cache_alloc+0x146/0x440  mempool_alloc+0x125/0x2f0  bio_alloc_bioset+0x353/0x590  mpage_alloc+0x3b/0x240  do_mpage_readpage+0xddf/0x1ef0  mpage_readahead+0x264/0x500  read_pages+0x1c1/0xbf0  page_cache_ra_unbounded+0x471/0x6f0  do_page_cache_ra+0xda/0x110  ondemand_readahead+0x442/0xae0  page_cache_async_ra+0x210/0x300  generic_file_buffered_read+0x4d9/0x2130  generic_file_read_iter+0x315/0x490  blkdev_read_iter+0x113/0x1b0  aio_read+0x2ad/0x450  io_submit_one+0xc8e/0x1d60  __se_sys_io_submit+0x125/0x350  do_syscall_64+0x2d/0x40  entry_SYSCALL_64_after_hwframe+0x44/0xa9  Freed by task 0:  kasan_save_stack+0x19/0x40  kasan_set_track+0x1c/0x30  kasan_set_free_info+0x1b/0x30  __kasan_slab_free+0x111/0x160  kmem_cache_free+0x94/0x460  mempool_free+0xd6/0x320  bio_free+0xe0/0x130  bio_put+0xab/0xe0  bio_endio+0x3a6/0x5d0  blk_update_request+0x590/0x1370  scsi_end_request+0x7d/0x400  scsi_io_completion+0x1aa/0xe50  scsi_softirq_done+0x11b/0x240  blk_mq_complete_request+0xd4/0x120  scsi_mq_done+0xf0/0x200  virtscsi_vq_done+0xbc/0x150  vring_interrupt+0x179/0x390  __handle_irq_event_percpu+0xf7/0x490  handle_irq_event_percpu+0x7b/0x160  handle_irq_event+0xcc/0x170  handle_edge_irq+0x215/0xb20  common_interrupt+0x60/0x120  asm_common_interrupt+0x1e/0x40  Fix this by move BIO_THROTTLED set into the queue_lock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-26 07:01:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71180",
                                "url": "https://ubuntu.com/security/CVE-2025-71180",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  counter: interrupt-cnt: Drop IRQF_NO_THREAD flag  An IRQ handler can either be IRQF_NO_THREAD or acquire spinlock_t, as CONFIG_PROVE_RAW_LOCK_NESTING warns: ============================= [ BUG: Invalid wait context ] 6.18.0-rc1+git... #1 ----------------------------- some-user-space-process/1251 is trying to lock: (&counter->events_list_lock){....}-{3:3}, at: counter_push_event [counter] other info that might help us debug this: context-{2:2} no locks held by some-user-space-process/.... stack backtrace: CPU: 0 UID: 0 PID: 1251 Comm: some-user-space-process 6.18.0-rc1+git... #1 PREEMPT Call trace:  show_stack (C)  dump_stack_lvl  dump_stack  __lock_acquire  lock_acquire  _raw_spin_lock_irqsave  counter_push_event [counter]  interrupt_cnt_isr [interrupt_cnt]  __handle_irq_event_percpu  handle_irq_event  handle_simple_irq  handle_irq_desc  generic_handle_domain_irq  gpio_irq_handler  handle_irq_desc  generic_handle_domain_irq  gic_handle_irq  call_on_irq_stack  do_interrupt_handler  el0_interrupt  __el0_irq_handler_common  el0t_64_irq_handler  el0t_64_irq  ... and Sebastian correctly points out. Remove IRQF_NO_THREAD as an alternative to switching to raw_spinlock_t, because the latter would limit all potential nested locks to raw_spinlock_t only.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22980",
                                "url": "https://ubuntu.com/security/CVE-2026-22980",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfsd: provide locking for v4_end_grace  Writing to v4_end_grace can race with server shutdown and result in memory being accessed after it was freed - reclaim_str_hashtbl in particularly.  We cannot hold nfsd_mutex across the nfsd4_end_grace() call as that is held while client_tracking_op->init() is called and that can wait for an upcall to nfsdcltrack which can write to v4_end_grace, resulting in a deadlock.  nfsd4_end_grace() is also called by the landromat work queue and this doesn't require locking as server shutdown will stop the work and wait for it before freeing anything that nfsd4_end_grace() might access.  However, we must be sure that writing to v4_end_grace doesn't restart the work item after shutdown has already waited for it.  For this we add a new flag protected with nn->client_lock.  It is set only while it is safe to make client tracking calls, and v4_end_grace only schedules work while the flag is set with the spinlock held.  So this patch adds a nfsd_net field \"client_tracking_active\" which is set as described.  Another field \"grace_end_forced\", is set when v4_end_grace is written.  After this is set, and providing client_tracking_active is set, the laundromat is scheduled. This \"grace_end_forced\" field bypasses other checks for whether the grace period has finished.  This resolves a race which can result in use-after-free.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23021",
                                "url": "https://ubuntu.com/security/CVE-2026-23021",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: pegasus: fix memory leak in update_eth_regs_async()  When asynchronously writing to the device registers and if usb_submit_urb() fail, the code fail to release allocated to this point resources.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22976",
                                "url": "https://ubuntu.com/security/CVE-2026-22976",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate in qfq_reset  `qfq_class->leaf_qdisc->q.qlen > 0` does not imply that the class itself is active.  Two qfq_class objects may point to the same leaf_qdisc. This happens when:  1. one QFQ qdisc is attached to the dev as the root qdisc, and  2. another QFQ qdisc is temporarily referenced (e.g., via qdisc_get() / qdisc_put()) and is pending to be destroyed, as in function tc_new_tfilter.  When packets are enqueued through the root QFQ qdisc, the shared leaf_qdisc->q.qlen increases. At the same time, the second QFQ qdisc triggers qdisc_put and qdisc_destroy: the qdisc enters qfq_reset() with its own q->q.qlen == 0, but its class's leaf qdisc->q.qlen > 0. Therefore, the qfq_reset would wrongly deactivate an inactive aggregate and trigger a null-deref in qfq_deactivate_agg:  [    0.903172] BUG: kernel NULL pointer dereference, address: 0000000000000000 [    0.903571] #PF: supervisor write access in kernel mode [    0.903860] #PF: error_code(0x0002) - not-present page [    0.904177] PGD 10299b067 P4D 10299b067 PUD 10299c067 PMD 0 [    0.904502] Oops: Oops: 0002 [#1] SMP NOPTI [    0.904737] CPU: 0 UID: 0 PID: 135 Comm: exploit Not tainted 6.19.0-rc3+ #2 NONE [    0.905157] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014 [    0.905754] RIP: 0010:qfq_deactivate_agg (include/linux/list.h:992 (discriminator 2) include/linux/list.h:1006 (discriminator 2) net/sched/sch_qfq.c:1367 (discriminator 2) net/sched/sch_qfq.c:1393 (discriminator 2)) [    0.906046] Code: 0f 84 4d 01 00 00 48 89 70 18 8b 4b 10 48 c7 c2 ff ff ff ff 48 8b 78 08 48 d3 e2 48 21 f2 48 2b 13 48 8b 30 48 d3 ea 8b 4b 18 0  Code starting with the faulting instruction ===========================================    0:\t0f 84 4d 01 00 00    \tje     0x153    6:\t48 89 70 18          \tmov    %rsi,0x18(%rax)    a:\t8b 4b 10             \tmov    0x10(%rbx),%ecx    d:\t48 c7 c2 ff ff ff ff \tmov    $0xffffffffffffffff,%rdx   14:\t48 8b 78 08          \tmov    0x8(%rax),%rdi   18:\t48 d3 e2             \tshl    %cl,%rdx   1b:\t48 21 f2             \tand    %rsi,%rdx   1e:\t48 2b 13             \tsub    (%rbx),%rdx   21:\t48 8b 30             \tmov    (%rax),%rsi   24:\t48 d3 ea             \tshr    %cl,%rdx   27:\t8b 4b 18             \tmov    0x18(%rbx),%ecx \t... [    0.907095] RSP: 0018:ffffc900004a39a0 EFLAGS: 00010246 [    0.907368] RAX: ffff8881043a0880 RBX: ffff888102953340 RCX: 0000000000000000 [    0.907723] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 [    0.908100] RBP: ffff888102952180 R08: 0000000000000000 R09: 0000000000000000 [    0.908451] R10: ffff8881043a0000 R11: 0000000000000000 R12: ffff888102952000 [    0.908804] R13: ffff888102952180 R14: ffff8881043a0ad8 R15: ffff8881043a0880 [    0.909179] FS:  000000002a1a0380(0000) GS:ffff888196d8d000(0000) knlGS:0000000000000000 [    0.909572] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [    0.909857] CR2: 0000000000000000 CR3: 0000000102993002 CR4: 0000000000772ef0 [    0.910247] PKRU: 55555554 [    0.910391] Call Trace: [    0.910527]  <TASK> [    0.910638]  qfq_reset_qdisc (net/sched/sch_qfq.c:357 net/sched/sch_qfq.c:1485) [    0.910826]  qdisc_reset (include/linux/skbuff.h:2195 include/linux/skbuff.h:2501 include/linux/skbuff.h:3424 include/linux/skbuff.h:3430 net/sched/sch_generic.c:1036) [    0.911040]  __qdisc_destroy (net/sched/sch_generic.c:1076) [    0.911236]  tc_new_tfilter (net/sched/cls_api.c:2447) [    0.911447]  rtnetlink_rcv_msg (net/core/rtnetlink.c:6958) [    0.911663]  ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6861) [    0.911894]  netlink_rcv_skb (net/netlink/af_netlink.c:2550) [    0.912100]  netlink_unicast (net/netlink/af_netlink.c:1319 net/netlink/af_netlink.c:1344) [    0.912296]  ? __alloc_skb (net/core/skbuff.c:706) [    0.912484]  netlink_sendmsg (net/netlink/af ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-21 07:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22977",
                                "url": "https://ubuntu.com/security/CVE-2026-22977",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sock: fix hardened usercopy panic in sock_recv_errqueue  skbuff_fclone_cache was created without defining a usercopy region, [1] unlike skbuff_head_cache which properly whitelists the cb[] field. [2] This causes a usercopy BUG() when CONFIG_HARDENED_USERCOPY is enabled and the kernel attempts to copy sk_buff.cb data to userspace via sock_recv_errqueue() -> put_cmsg().  The crash occurs when: 1. TCP allocates an skb using alloc_skb_fclone()    (from skbuff_fclone_cache) [1] 2. The skb is cloned via skb_clone() using the pre-allocated fclone [3] 3. The cloned skb is queued to sk_error_queue for timestamp reporting 4. Userspace reads the error queue via recvmsg(MSG_ERRQUEUE) 5. sock_recv_errqueue() calls put_cmsg() to copy serr->ee from skb->cb [4] 6. __check_heap_object() fails because skbuff_fclone_cache has no    usercopy whitelist [5]  When cloned skbs allocated from skbuff_fclone_cache are used in the socket error queue, accessing the sock_exterr_skb structure in skb->cb via put_cmsg() triggers a usercopy hardening violation:  [    5.379589] usercopy: Kernel memory exposure attempt detected from SLUB object 'skbuff_fclone_cache' (offset 296, size 16)! [    5.382796] kernel BUG at mm/usercopy.c:102! [    5.383923] Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI [    5.384903] CPU: 1 UID: 0 PID: 138 Comm: poc_put_cmsg Not tainted 6.12.57 #7 [    5.384903] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [    5.384903] RIP: 0010:usercopy_abort+0x6c/0x80 [    5.384903] Code: 1a 86 51 48 c7 c2 40 15 1a 86 41 52 48 c7 c7 c0 15 1a 86 48 0f 45 d6 48 c7 c6 80 15 1a 86 48 89 c1 49 0f 45 f3 e8 84 27 88 ff <0f> 0b 490 [    5.384903] RSP: 0018:ffffc900006f77a8 EFLAGS: 00010246 [    5.384903] RAX: 000000000000006f RBX: ffff88800f0ad2a8 RCX: 1ffffffff0f72e74 [    5.384903] RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffffffff87b973a0 [    5.384903] RBP: 0000000000000010 R08: 0000000000000000 R09: fffffbfff0f72e74 [    5.384903] R10: 0000000000000003 R11: 79706f6372657375 R12: 0000000000000001 [    5.384903] R13: ffff88800f0ad2b8 R14: ffffea00003c2b40 R15: ffffea00003c2b00 [    5.384903] FS:  0000000011bc4380(0000) GS:ffff8880bf100000(0000) knlGS:0000000000000000 [    5.384903] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [    5.384903] CR2: 000056aa3b8e5fe4 CR3: 000000000ea26004 CR4: 0000000000770ef0 [    5.384903] PKRU: 55555554 [    5.384903] Call Trace: [    5.384903]  <TASK> [    5.384903]  __check_heap_object+0x9a/0xd0 [    5.384903]  __check_object_size+0x46c/0x690 [    5.384903]  put_cmsg+0x129/0x5e0 [    5.384903]  sock_recv_errqueue+0x22f/0x380 [    5.384903]  tls_sw_recvmsg+0x7ed/0x1960 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5 [    5.384903]  ? schedule+0x6d/0x270 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5 [    5.384903]  ? mutex_unlock+0x81/0xd0 [    5.384903]  ? __pfx_mutex_unlock+0x10/0x10 [    5.384903]  ? __pfx_tls_sw_recvmsg+0x10/0x10 [    5.384903]  ? _raw_spin_lock_irqsave+0x8f/0xf0 [    5.384903]  ? _raw_read_unlock_irqrestore+0x20/0x40 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5  The crash offset 296 corresponds to skb2->cb within skbuff_fclones:   - sizeof(struct sk_buff) = 232 - offsetof(struct sk_buff, cb) = 40 -   offset of skb2.cb in fclones = 232 + 40 = 272 - crash offset 296 =   272 + 24 (inside sock_exterr_skb.ee)  This patch uses a local stack variable as a bounce buffer to avoid the hardened usercopy check failure.  [1] https://elixir.bootlin.com/linux/v6.12.62/source/net/ipv4/tcp.c#L885 [2] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5104 [3] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5566 [4] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5491 [5] https://elixir.bootlin.com/linux/v6.12.62/source/mm/slub.c#L5719",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-21 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22982",
                                "url": "https://ubuntu.com/security/CVE-2026-22982",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: mscc: ocelot: Fix crash when adding interface under a lag  Commit 15faa1f67ab4 (\"lan966x: Fix crash when adding interface under a lag\") fixed a similar issue in the lan966x driver caused by a NULL pointer dereference. The ocelot_set_aggr_pgids() function in the ocelot driver has similar logic and is susceptible to the same crash.  This issue specifically affects the ocelot_vsc7514.c frontend, which leaves unused ports as NULL pointers. The felix_vsc9959.c frontend is unaffected as it uses the DSA framework which registers all ports.  Fix this by checking if the port pointer is valid before accessing it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23019",
                                "url": "https://ubuntu.com/security/CVE-2026-23019",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: marvell: prestera: fix NULL dereference on devlink_alloc() failure  devlink_alloc() may return NULL on allocation failure, but prestera_devlink_alloc() unconditionally calls devlink_priv() on the returned pointer.  This leads to a NULL pointer dereference if devlink allocation fails. Add a check for a NULL devlink pointer and return NULL early to avoid the crash.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-22121",
                                "url": "https://ubuntu.com/security/CVE-2025-22121",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: fix out-of-bound read in ext4_xattr_inode_dec_ref_all()  There's issue as follows: BUG: KASAN: use-after-free in ext4_xattr_inode_dec_ref_all+0x6ff/0x790 Read of size 4 at addr ffff88807b003000 by task syz-executor.0/15172  CPU: 3 PID: 15172 Comm: syz-executor.0 Call Trace:  __dump_stack lib/dump_stack.c:82 [inline]  dump_stack+0xbe/0xfd lib/dump_stack.c:123  print_address_description.constprop.0+0x1e/0x280 mm/kasan/report.c:400  __kasan_report.cold+0x6c/0x84 mm/kasan/report.c:560  kasan_report+0x3a/0x50 mm/kasan/report.c:585  ext4_xattr_inode_dec_ref_all+0x6ff/0x790 fs/ext4/xattr.c:1137  ext4_xattr_delete_inode+0x4c7/0xda0 fs/ext4/xattr.c:2896  ext4_evict_inode+0xb3b/0x1670 fs/ext4/inode.c:323  evict+0x39f/0x880 fs/inode.c:622  iput_final fs/inode.c:1746 [inline]  iput fs/inode.c:1772 [inline]  iput+0x525/0x6c0 fs/inode.c:1758  ext4_orphan_cleanup fs/ext4/super.c:3298 [inline]  ext4_fill_super+0x8c57/0xba40 fs/ext4/super.c:5300  mount_bdev+0x355/0x410 fs/super.c:1446  legacy_get_tree+0xfe/0x220 fs/fs_context.c:611  vfs_get_tree+0x8d/0x2f0 fs/super.c:1576  do_new_mount fs/namespace.c:2983 [inline]  path_mount+0x119a/0x1ad0 fs/namespace.c:3316  do_mount+0xfc/0x110 fs/namespace.c:3329  __do_sys_mount fs/namespace.c:3540 [inline]  __se_sys_mount+0x219/0x2e0 fs/namespace.c:3514  do_syscall_64+0x33/0x40 arch/x86/entry/common.c:46  entry_SYSCALL_64_after_hwframe+0x67/0xd1  Memory state around the buggy address:  ffff88807b002f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ffff88807b002f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffff88807b003000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff                    ^  ffff88807b003080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ffff88807b003100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  Above issue happens as ext4_xattr_delete_inode() isn't check xattr is valid if xattr is in inode. To solve above issue call xattr_check_inode() check if xattr if valid in inode. In fact, we can directly verify in ext4_iget_extra_inode(), so that there is no divergent verification.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22992",
                                "url": "https://ubuntu.com/security/CVE-2026-22992",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: return the handler error from mon_handle_auth_done()  Currently any error from ceph_auth_handle_reply_done() is propagated via finish_auth() but isn't returned from mon_handle_auth_done().  This results in higher layers learning that (despite the monitor considering us to be successfully authenticated) something went wrong in the authentication phase and reacting accordingly, but msgr2 still trying to proceed with establishing the session in the background.  In the case of secure mode this can trigger a WARN in setup_crypto() and later lead to a NULL pointer dereference inside of prepare_auth_signature().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22991",
                                "url": "https://ubuntu.com/security/CVE-2026-22991",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make free_choose_arg_map() resilient to partial allocation  free_choose_arg_map() may dereference a NULL pointer if its caller fails after a partial allocation.  For example, in decode_choose_args(), if allocation of arg_map->args fails, execution jumps to the fail label and free_choose_arg_map() is called. Since arg_map->size is updated to a non-zero value before memory allocation, free_choose_arg_map() will iterate over arg_map->args and dereference a NULL pointer.  To prevent this potential NULL pointer dereference and make free_choose_arg_map() more resilient, add checks for pointers before iterating.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22990",
                                "url": "https://ubuntu.com/security/CVE-2026-22990",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: replace overzealous BUG_ON in osdmap_apply_incremental()  If the osdmap is (maliciously) corrupted such that the incremental osdmap epoch is different from what is expected, there is no need to BUG.  Instead, just declare the incremental osdmap to be invalid.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22984",
                                "url": "https://ubuntu.com/security/CVE-2026-22984",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: prevent potential out-of-bounds reads in handle_auth_done()  Perform an explicit bounds check on payload_len to avoid a possible out-of-bounds access in the callout.  [ idryomov: changelog ]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22978",
                                "url": "https://ubuntu.com/security/CVE-2026-22978",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: avoid kernel-infoleak from struct iw_point  struct iw_point has a 32bit hole on 64bit arches.  struct iw_point {   void __user   *pointer;       /* Pointer to the data  (in user space) */   __u16         length;         /* number of fields or size in bytes */   __u16         flags;          /* Optional params */ };  Make sure to zero the structure to avoid disclosing 32bits of kernel data to user space.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23020",
                                "url": "https://ubuntu.com/security/CVE-2026-23020",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: 3com: 3c59x: fix possible null dereference in vortex_probe1()  pdev can be null and free_ring: can be called in 1297 with a null pdev.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-49968",
                                "url": "https://ubuntu.com/security/CVE-2024-49968",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: filesystems without casefold feature cannot be mounted with siphash  When mounting the ext4 filesystem, if the default hash version is set to DX_HASH_SIPHASH but the casefold feature is not set, exit the mounting.",
                                "cve_priority": "low",
                                "cve_public_date": "2024-10-21 18:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-36927",
                                "url": "https://ubuntu.com/security/CVE-2024-36927",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: Fix uninit-value access in __ip_make_skb()  KMSAN reported uninit-value access in __ip_make_skb() [1].  __ip_make_skb() tests HDRINCL to know if the skb has icmphdr. However, HDRINCL can cause a race condition. If calling setsockopt(2) with IP_HDRINCL changes HDRINCL while __ip_make_skb() is running, the function will access icmphdr in the skb even if it is not included. This causes the issue reported by KMSAN.  Check FLOWI_FLAG_KNOWN_NH on fl4->flowi4_flags instead of testing HDRINCL on the socket.  Also, fl4->fl4_icmp_type and fl4->fl4_icmp_code are not initialized. These are union in struct flowi4 and are implicitly initialized by flowi4_init_output(), but we should not rely on specific union layout.  Initialize these explicitly in raw_sendmsg().  [1] BUG: KMSAN: uninit-value in __ip_make_skb+0x2b74/0x2d20 net/ipv4/ip_output.c:1481  __ip_make_skb+0x2b74/0x2d20 net/ipv4/ip_output.c:1481  ip_finish_skb include/net/ip.h:243 [inline]  ip_push_pending_frames+0x4c/0x5c0 net/ipv4/ip_output.c:1508  raw_sendmsg+0x2381/0x2690 net/ipv4/raw.c:654  inet_sendmsg+0x27b/0x2a0 net/ipv4/af_inet.c:851  sock_sendmsg_nosec net/socket.c:730 [inline]  __sock_sendmsg+0x274/0x3c0 net/socket.c:745  __sys_sendto+0x62c/0x7b0 net/socket.c:2191  __do_sys_sendto net/socket.c:2203 [inline]  __se_sys_sendto net/socket.c:2199 [inline]  __x64_sys_sendto+0x130/0x200 net/socket.c:2199  do_syscall_64+0xd8/0x1f0 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x6d/0x75  Uninit was created at:  slab_post_alloc_hook mm/slub.c:3804 [inline]  slab_alloc_node mm/slub.c:3845 [inline]  kmem_cache_alloc_node+0x5f6/0xc50 mm/slub.c:3888  kmalloc_reserve+0x13c/0x4a0 net/core/skbuff.c:577  __alloc_skb+0x35a/0x7c0 net/core/skbuff.c:668  alloc_skb include/linux/skbuff.h:1318 [inline]  __ip_append_data+0x49ab/0x68c0 net/ipv4/ip_output.c:1128  ip_append_data+0x1e7/0x260 net/ipv4/ip_output.c:1365  raw_sendmsg+0x22b1/0x2690 net/ipv4/raw.c:648  inet_sendmsg+0x27b/0x2a0 net/ipv4/af_inet.c:851  sock_sendmsg_nosec net/socket.c:730 [inline]  __sock_sendmsg+0x274/0x3c0 net/socket.c:745  __sys_sendto+0x62c/0x7b0 net/socket.c:2191  __do_sys_sendto net/socket.c:2203 [inline]  __se_sys_sendto net/socket.c:2199 [inline]  __x64_sys_sendto+0x130/0x200 net/socket.c:2199  do_syscall_64+0xd8/0x1f0 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x6d/0x75  CPU: 1 PID: 15709 Comm: syz-executor.7 Not tainted 6.8.0-11567-gb3603fcb79b1 #25 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-1.fc39 04/01/2014",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-05-30 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-36903",
                                "url": "https://ubuntu.com/security/CVE-2024-36903",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: Fix potential uninit-value access in __ip6_make_skb()  As it was done in commit fc1092f51567 (\"ipv4: Fix uninit-value access in __ip_make_skb()\") for IPv4, check FLOWI_FLAG_KNOWN_NH on fl6->flowi6_flags instead of testing HDRINCL on the socket to avoid a race condition which causes uninit-value access.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-05-30 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38556",
                                "url": "https://ubuntu.com/security/CVE-2025-38556",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  HID: core: Harden s32ton() against conversion to 0 bits  Testing by the syzbot fuzzer showed that the HID core gets a shift-out-of-bounds exception when it tries to convert a 32-bit quantity to a 0-bit quantity.  Ideally this should never occur, but there are buggy devices and some might have a report field with size set to zero; we shouldn't reject the report or the device just because of that.  Instead, harden the s32ton() routine so that it returns a reasonable result instead of crashing when it is called with the number of bits set to 0 -- the same as what snto32() does.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-08-19 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-46830",
                                "url": "https://ubuntu.com/security/CVE-2024-46830",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: x86: Acquire kvm->srcu when handling KVM_SET_VCPU_EVENTS  Grab kvm->srcu when processing KVM_SET_VCPU_EVENTS, as KVM will forcibly leave nested VMX/SVM if SMM mode is being toggled, and leaving nested VMX reads guest memory.  Note, kvm_vcpu_ioctl_x86_set_vcpu_events() can also be called from KVM_RUN via sync_regs(), which already holds SRCU.  I.e. trying to precisely use kvm_vcpu_srcu_read_lock() around the problematic SMM code would cause problems.  Acquiring SRCU isn't all that expensive, so for simplicity, grab it unconditionally for KVM_SET_VCPU_EVENTS.   =============================  WARNING: suspicious RCU usage  6.10.0-rc7-332d2c1d713e-next-vm #552 Not tainted  -----------------------------  include/linux/kvm_host.h:1027 suspicious rcu_dereference_check() usage!   other info that might help us debug this:   rcu_scheduler_active = 2, debug_locks = 1  1 lock held by repro/1071:   #0: ffff88811e424430 (&vcpu->mutex){+.+.}-{3:3}, at: kvm_vcpu_ioctl+0x7d/0x970 [kvm]   stack backtrace:  CPU: 15 PID: 1071 Comm: repro Not tainted 6.10.0-rc7-332d2c1d713e-next-vm #552  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015  Call Trace:   <TASK>   dump_stack_lvl+0x7f/0x90   lockdep_rcu_suspicious+0x13f/0x1a0   kvm_vcpu_gfn_to_memslot+0x168/0x190 [kvm]   kvm_vcpu_read_guest+0x3e/0x90 [kvm]   nested_vmx_load_msr+0x6b/0x1d0 [kvm_intel]   load_vmcs12_host_state+0x432/0xb40 [kvm_intel]   vmx_leave_nested+0x30/0x40 [kvm_intel]   kvm_vcpu_ioctl_x86_set_vcpu_events+0x15d/0x2b0 [kvm]   kvm_arch_vcpu_ioctl+0x1107/0x1750 [kvm]   ? mark_held_locks+0x49/0x70   ? kvm_vcpu_ioctl+0x7d/0x970 [kvm]   ? kvm_vcpu_ioctl+0x497/0x970 [kvm]   kvm_vcpu_ioctl+0x497/0x970 [kvm]   ? lock_acquire+0xba/0x2d0   ? find_held_lock+0x2b/0x80   ? do_user_addr_fault+0x40c/0x6f0   ? lock_release+0xb7/0x270   __x64_sys_ioctl+0x82/0xb0   do_syscall_64+0x6c/0x170   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7ff11eb1b539   </TASK>",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-09-27 13:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38129",
                                "url": "https://ubuntu.com/security/CVE-2025-38129",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  page_pool: Fix use-after-free in page_pool_recycle_in_ring  syzbot reported a uaf in page_pool_recycle_in_ring:  BUG: KASAN: slab-use-after-free in lock_release+0x151/0xa30 kernel/locking/lockdep.c:5862 Read of size 8 at addr ffff8880286045a0 by task syz.0.284/6943  CPU: 0 UID: 0 PID: 6943 Comm: syz.0.284 Not tainted 6.13.0-rc3-syzkaller-gdfa94ce54f41 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0x169/0x550 mm/kasan/report.c:489  kasan_report+0x143/0x180 mm/kasan/report.c:602  lock_release+0x151/0xa30 kernel/locking/lockdep.c:5862  __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:165 [inline]  _raw_spin_unlock_bh+0x1b/0x40 kernel/locking/spinlock.c:210  spin_unlock_bh include/linux/spinlock.h:396 [inline]  ptr_ring_produce_bh include/linux/ptr_ring.h:164 [inline]  page_pool_recycle_in_ring net/core/page_pool.c:707 [inline]  page_pool_put_unrefed_netmem+0x748/0xb00 net/core/page_pool.c:826  page_pool_put_netmem include/net/page_pool/helpers.h:323 [inline]  page_pool_put_full_netmem include/net/page_pool/helpers.h:353 [inline]  napi_pp_put_page+0x149/0x2b0 net/core/skbuff.c:1036  skb_pp_recycle net/core/skbuff.c:1047 [inline]  skb_free_head net/core/skbuff.c:1094 [inline]  skb_release_data+0x6c4/0x8a0 net/core/skbuff.c:1125  skb_release_all net/core/skbuff.c:1190 [inline]  __kfree_skb net/core/skbuff.c:1204 [inline]  sk_skb_reason_drop+0x1c9/0x380 net/core/skbuff.c:1242  kfree_skb_reason include/linux/skbuff.h:1263 [inline]  __skb_queue_purge_reason include/linux/skbuff.h:3343 [inline]  root cause is:  page_pool_recycle_in_ring   ptr_ring_produce     spin_lock(&r->producer_lock);     WRITE_ONCE(r->queue[r->producer++], ptr)       //recycle last page to pool \t\t\t\tpage_pool_release \t\t\t\t  page_pool_scrub \t\t\t\t    page_pool_empty_ring \t\t\t\t      ptr_ring_consume \t\t\t\t      page_pool_return_page  //release all page \t\t\t\t  __page_pool_destroy \t\t\t\t     free_percpu(pool->recycle_stats); \t\t\t\t     free(pool) //free       spin_unlock(&r->producer_lock); //pool->ring uaf read   recycle_stat_inc(pool, ring);  page_pool can be free while page pool recycle the last page in ring. Add producer-lock barrier to page_pool_release to prevent the page pool from being free before all pages have been recycled.  recycle_stat_inc() is empty when CONFIG_PAGE_POOL_STATS is not enabled, which will trigger Wempty-body build warning. Add definition for pool stat macro to fix warning.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-07-03 09:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2022-49635",
                                "url": "https://ubuntu.com/security/CVE-2022-49635",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915/selftests: fix subtraction overflow bug  On some machines hole_end can be small enough to cause subtraction overflow. On the other side (addr + 2 * min_alignment) can overflow in case of mock tests. This patch should handle both cases.  (cherry picked from commit ab3edc679c552a466e4bf0b11af3666008bd65a2)",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-26 07:01:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-22111",
                                "url": "https://ubuntu.com/security/CVE-2025-22111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: Remove RTNL dance for SIOCBRADDIF and SIOCBRDELIF.  SIOCBRDELIF is passed to dev_ioctl() first and later forwarded to br_ioctl_call(), which causes unnecessary RTNL dance and the splat below [0] under RTNL pressure.  Let's say Thread A is trying to detach a device from a bridge and Thread B is trying to remove the bridge.  In dev_ioctl(), Thread A bumps the bridge device's refcnt by netdev_hold() and releases RTNL because the following br_ioctl_call() also re-acquires RTNL.  In the race window, Thread B could acquire RTNL and try to remove the bridge device.  Then, rtnl_unlock() by Thread B will release RTNL and wait for netdev_put() by Thread A.  Thread A, however, must hold RTNL after the unlock in dev_ifsioc(), which may take long under RTNL pressure, resulting in the splat by Thread B.    Thread A (SIOCBRDELIF)           Thread B (SIOCBRDELBR)   ----------------------           ----------------------   sock_ioctl                       sock_ioctl   `- sock_do_ioctl                 `- br_ioctl_call      `- dev_ioctl                     `- br_ioctl_stub         |- rtnl_lock                     |         |- dev_ifsioc                    '         '  |- dev = __dev_get_by_name(...)            |- netdev_hold(dev, ...)      .        /   |- rtnl_unlock  ------.       |        |   |- br_ioctl_call       `--->  |- rtnl_lock   Race |   |  `- br_ioctl_stub           |- br_del_bridge   Window   |     |                       |  |- dev = __dev_get_by_name(...)        |   |     |  May take long        |  `- br_dev_delete(dev, ...)        |   |     |  under RTNL pressure  |     `- unregister_netdevice_queue(dev, ...)        |   |     |               |       `- rtnl_unlock        \\   |     |- rtnl_lock  <-'          `- netdev_run_todo            |     |- ...                        `- netdev_run_todo            |     `- rtnl_unlock                   |- __rtnl_unlock            |                                      |- netdev_wait_allrefs_any            |- netdev_put(dev, ...)  <----------------'                                                 Wait refcnt decrement                                                 and log splat below  To avoid blocking SIOCBRDELBR unnecessarily, let's not call dev_ioctl() for SIOCBRADDIF and SIOCBRDELIF.  In the dev_ioctl() path, we do the following:    1. Copy struct ifreq by get_user_ifreq in sock_do_ioctl()   2. Check CAP_NET_ADMIN in dev_ioctl()   3. Call dev_load() in dev_ioctl()   4. Fetch the master dev from ifr.ifr_name in dev_ifsioc()  3. can be done by request_module() in br_ioctl_call(), so we move 1., 2., and 4. to br_ioctl_stub().  Note that 2. is also checked later in add_del_if(), but it's better performed before RTNL.  SIOCBRADDIF and SIOCBRDELIF have been processed in dev_ioctl() since the pre-git era, and there seems to be no specific reason to process them there.  [0]: unregister_netdevice: waiting for wpan3 to become free. Usage count = 2 ref_tracker: wpan3@ffff8880662d8608 has 1/1 users at      __netdev_tracker_alloc include/linux/netdevice.h:4282 [inline]      netdev_hold include/linux/netdevice.h:4311 [inline]      dev_ifsioc+0xc6a/0x1160 net/core/dev_ioctl.c:624      dev_ioctl+0x255/0x10c0 net/core/dev_ioctl.c:826      sock_do_ioctl+0x1ca/0x260 net/socket.c:1213      sock_ioctl+0x23a/0x6c0 net/socket.c:1318      vfs_ioctl fs/ioctl.c:51 [inline]      __do_sys_ioctl fs/ioctl.c:906 [inline]      __se_sys_ioctl fs/ioctl.c:892 [inline]      __x64_sys_ioctl+0x1a4/0x210 fs/ioctl.c:892      do_syscall_x64 arch/x86/entry/common.c:52 [inline]      do_syscall_64+0xcb/0x250 arch/x86/entry/common.c:83      entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71127",
                                "url": "https://ubuntu.com/security/CVE-2025-71127",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: mac80211: Discard Beacon frames to non-broadcast address  Beacon frames are required to be sent to the broadcast address, see IEEE Std 802.11-2020, 11.1.3.1 (\"The Address 1 field of the Beacon .. frame shall be set to the broadcast address\"). A unicast Beacon frame might be used as a targeted attack to get one of the associated STAs to do something (e.g., using CSA to move it to another channel). As such, it is better have strict filtering for this on the received side and discard all Beacon frames that are sent to an unexpected address.  This is even more important for cases where beacon protection is used. The current implementation in mac80211 is correctly discarding unicast Beacon frames if the Protected Frame bit in the Frame Control field is set to 0. However, if that bit is set to 1, the logic used for checking for configured BIGTK(s) does not actually work. If the driver does not have logic for dropping unicast Beacon frames with Protected Frame bit 1, these frames would be accepted in mac80211 processing as valid Beacon frames even though they are not protected. This would allow beacon protection to be bypassed. While the logic for checking beacon protection could be extended to cover this corner case, a more generic check for discard all Beacon frames based on A1=unicast address covers this without needing additional changes.  Address all these issues by dropping received Beacon frames if they are sent to a non-broadcast address.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71081",
                                "url": "https://ubuntu.com/security/CVE-2025-71081",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: stm32: sai: fix OF node leak on probe  The reference taken to the sync provider OF node when probing the platform device is currently only dropped if the set_sync() callback fails during DAI probe.  Make sure to drop the reference on platform probe failures (e.g. probe deferral) and on driver unbind.  This also avoids a potential use-after-free in case the DAI is ever reprobed without first rebinding the platform driver.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71078",
                                "url": "https://ubuntu.com/security/CVE-2025-71078",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  powerpc/64s/slb: Fix SLB multihit issue during SLB preload  On systems using the hash MMU, there is a software SLB preload cache that mirrors the entries loaded into the hardware SLB buffer. This preload cache is subject to periodic eviction — typically after every 256 context switches — to remove old entry.  To optimize performance, the kernel skips switch_mmu_context() in switch_mm_irqs_off() when the prev and next mm_struct are the same. However, on hash MMU systems, this can lead to inconsistencies between the hardware SLB and the software preload cache.  If an SLB entry for a process is evicted from the software cache on one CPU, and the same process later runs on another CPU without executing switch_mmu_context(), the hardware SLB may retain stale entries. If the kernel then attempts to reload that entry, it can trigger an SLB multi-hit error.  The following timeline shows how stale SLB entries are created and can cause a multi-hit error when a process moves between CPUs without a MMU context switch.  CPU 0                                   CPU 1 -----                                    ----- Process P exec                                    swapper/1  load_elf_binary   begin_new_exc     activate_mm      switch_mm_irqs_off       switch_mmu_context        switch_slb        /*         * This invalidates all         * the entries in the HW         * and setup the new HW         * SLB entries as per the         * preload cache.         */ context_switch sched_migrate_task migrates process P to cpu-1  Process swapper/0                       context switch (to process P) (uses mm_struct of Process P)           switch_mm_irqs_off()                                          switch_slb                                            load_slb++                                             /*                                             * load_slb becomes 0 here                                             * and we evict an entry from                                             * the preload cache with                                             * preload_age(). We still                                             * keep HW SLB and preload                                             * cache in sync, that is                                             * because all HW SLB entries                                             * anyways gets evicted in                                             * switch_slb during SLBIA.                                             * We then only add those                                             * entries back in HW SLB,                                             * which are currently                                             * present in preload_cache                                             * (after eviction).                                             */                                         load_elf_binary continues...                                          setup_new_exec()                                           slb_setup_new_exec()                                          sched_switch event                                         sched_migrate_task migrates                                         process P to cpu-0  context_switch from swapper/0 to Process P  switch_mm_irqs_off()   /*    * Since both prev and next mm struct are same we don't call    * switch_mmu_context(). This will cause the HW SLB and SW preload    * cache to go out of sync in preload_new_slb_context. Because there    * was an SLB entry which was evicted from both HW and preload cache    * on cpu-1. Now later in preload_new_slb_context(), when we will try    * to add the same preload entry again, we will add this to the SW    * preload cache and then will add it to the HW SLB. Since on cpu-0    * this entry was never invalidated, hence adding this entry to the HW    * SLB will cause a SLB multi-hit error.    */ load_elf_binary cont ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68803",
                                "url": "https://ubuntu.com/security/CVE-2025-68803",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: NFSv4 file creation neglects setting ACL  An NFSv4 client that sets an ACL with a named principal during file creation retrieves the ACL afterwards, and finds that it is only a default ACL (based on the mode bits) and not the ACL that was requested during file creation. This violates RFC 8881 section 6.4.1.3: \"the ACL attribute is set as given\".  The issue occurs in nfsd_create_setattr(), which calls nfsd_attrs_valid() to determine whether to call nfsd_setattr(). However, nfsd_attrs_valid() checks only for iattr changes and security labels, but not POSIX ACLs. When only an ACL is present, the function returns false, nfsd_setattr() is skipped, and the POSIX ACL is never applied to the inode.  Subsequently, when the client retrieves the ACL, the server finds no POSIX ACL on the inode and returns one generated from the file's mode bits rather than returning the originally-specified ACL.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71120",
                                "url": "https://ubuntu.com/security/CVE-2025-71120",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in gss_read_proxy_verf  A zero length gss_token results in pages == 0 and in_token->pages[0] is NULL. The code unconditionally evaluates page_address(in_token->pages[0]) for the initial memcpy, which can dereference NULL even when the copy length is 0. Guard the first memcpy so it only runs when length > 0.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71113",
                                "url": "https://ubuntu.com/security/CVE-2025-71113",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - zero initialize memory allocated via sock_kmalloc  Several crypto user API contexts and requests allocated with sock_kmalloc() were left uninitialized, relying on callers to set fields explicitly. This resulted in the use of uninitialized data in certain error paths or when new fields are added in the future.  The ACVP patches also contain two user-space interface files: algif_kpp.c and algif_akcipher.c. These too rely on proper initialization of their context structures.  A particular issue has been observed with the newly added 'inflight' variable introduced in af_alg_ctx by commit:    67b164a871af (\"crypto: af_alg - Disallow multiple in-flight AIO requests\")  Because the context is not memset to zero after allocation, the inflight variable has contained garbage values. As a result, af_alg_alloc_areq() has incorrectly returned -EBUSY randomly when the garbage value was interpreted as true:    https://github.com/gregkh/linux/blame/master/crypto/af_alg.c#L1209  The check directly tests ctx->inflight without explicitly comparing against true/false. Since inflight is only ever set to true or false later, an uninitialized value has triggered -EBUSY failures. Zero-initializing memory allocated with sock_kmalloc() ensures inflight and other fields start in a known state, removing random issues caused by uninitialized data.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71068",
                                "url": "https://ubuntu.com/security/CVE-2025-71068",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  svcrdma: bound check rq_pages index in inline path  svc_rdma_copy_inline_range indexed rqstp->rq_pages[rc_curpage] without verifying rc_curpage stays within the allocated page array. Add guards before the first use and after advancing to a new page.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68821",
                                "url": "https://ubuntu.com/security/CVE-2025-68821",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fuse: fix readahead reclaim deadlock  Commit e26ee4efbc79 (\"fuse: allocate ff->release_args only if release is needed\") skips allocating ff->release_args if the server does not implement open. However in doing so, fuse_prepare_release() now skips grabbing the reference on the inode, which makes it possible for an inode to be evicted from the dcache while there are inflight readahead requests. This causes a deadlock if the server triggers reclaim while servicing the readahead request and reclaim attempts to evict the inode of the file being read ahead. Since the folio is locked during readahead, when reclaim evicts the fuse inode and fuse_evict_inode() attempts to remove all folios associated with the inode from the page cache (truncate_inode_pages_range()), reclaim will block forever waiting for the lock since readahead cannot relinquish the lock because it is itself blocked in reclaim:  >>> stack_trace(1504735)  folio_wait_bit_common (mm/filemap.c:1308:4)  folio_lock (./include/linux/pagemap.h:1052:3)  truncate_inode_pages_range (mm/truncate.c:336:10)  fuse_evict_inode (fs/fuse/inode.c:161:2)  evict (fs/inode.c:704:3)  dentry_unlink_inode (fs/dcache.c:412:3)  __dentry_kill (fs/dcache.c:615:3)  shrink_kill (fs/dcache.c:1060:12)  shrink_dentry_list (fs/dcache.c:1087:3)  prune_dcache_sb (fs/dcache.c:1168:2)  super_cache_scan (fs/super.c:221:10)  do_shrink_slab (mm/shrinker.c:435:9)  shrink_slab (mm/shrinker.c:626:10)  shrink_node (mm/vmscan.c:5951:2)  shrink_zones (mm/vmscan.c:6195:3)  do_try_to_free_pages (mm/vmscan.c:6257:3)  do_swap_page (mm/memory.c:4136:11)  handle_pte_fault (mm/memory.c:5562:10)  handle_mm_fault (mm/memory.c:5870:9)  do_user_addr_fault (arch/x86/mm/fault.c:1338:10)  handle_page_fault (arch/x86/mm/fault.c:1481:3)  exc_page_fault (arch/x86/mm/fault.c:1539:2)  asm_exc_page_fault+0x22/0x27  Fix this deadlock by allocating ff->release_args and grabbing the reference on the inode when preparing the file for release even if the server does not implement open. The inode reference will be dropped when the last reference on the fuse file is dropped (see fuse_file_put() -> fuse_release_end()).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68796",
                                "url": "https://ubuntu.com/security/CVE-2025-68796",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid updating zero-sized extent in extent cache  As syzbot reported:  F2FS-fs (loop0): __update_extent_tree_range: extent len is zero, type: 0, extent [0, 0, 0], age [0, 0] ------------[ cut here ]------------ kernel BUG at fs/f2fs/extent_cache.c:678! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 0 UID: 0 PID: 5336 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:__update_extent_tree_range+0x13bc/0x1500 fs/f2fs/extent_cache.c:678 Call Trace:  <TASK>  f2fs_update_read_extent_cache_range+0x192/0x3e0 fs/f2fs/extent_cache.c:1085  f2fs_do_zero_range fs/f2fs/file.c:1657 [inline]  f2fs_zero_range+0x10c1/0x1580 fs/f2fs/file.c:1737  f2fs_fallocate+0x583/0x990 fs/f2fs/file.c:2030  vfs_fallocate+0x669/0x7e0 fs/open.c:342  ioctl_preallocate fs/ioctl.c:289 [inline]  file_ioctl+0x611/0x780 fs/ioctl.c:-1  do_vfs_ioctl+0xb33/0x1430 fs/ioctl.c:576  __do_sys_ioctl fs/ioctl.c:595 [inline]  __se_sys_ioctl+0x82/0x170 fs/ioctl.c:583  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f07bc58eec9  In error path of f2fs_zero_range(), it may add a zero-sized extent into extent cache, it should be avoided.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71105",
                                "url": "https://ubuntu.com/security/CVE-2025-71105",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: use global inline_xattr_slab instead of per-sb slab cache  As Hong Yun reported in mailing list:  loop7: detected capacity change from 0 to 131072 ------------[ cut here ]------------ kmem_cache of name 'f2fs_xattr_entry-7:7' already exists WARNING: CPU: 0 PID: 24426 at mm/slab_common.c:110 kmem_cache_sanity_check mm/slab_common.c:109 [inline] WARNING: CPU: 0 PID: 24426 at mm/slab_common.c:110 __kmem_cache_create_args+0xa6/0x320 mm/slab_common.c:307 CPU: 0 UID: 0 PID: 24426 Comm: syz.7.1370 Not tainted 6.17.0-rc4 #1 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 RIP: 0010:kmem_cache_sanity_check mm/slab_common.c:109 [inline] RIP: 0010:__kmem_cache_create_args+0xa6/0x320 mm/slab_common.c:307 Call Trace:  __kmem_cache_create include/linux/slab.h:353 [inline]  f2fs_kmem_cache_create fs/f2fs/f2fs.h:2943 [inline]  f2fs_init_xattr_caches+0xa5/0xe0 fs/f2fs/xattr.c:843  f2fs_fill_super+0x1645/0x2620 fs/f2fs/super.c:4918  get_tree_bdev_flags+0x1fb/0x260 fs/super.c:1692  vfs_get_tree+0x43/0x140 fs/super.c:1815  do_new_mount+0x201/0x550 fs/namespace.c:3808  do_mount fs/namespace.c:4136 [inline]  __do_sys_mount fs/namespace.c:4347 [inline]  __se_sys_mount+0x298/0x2f0 fs/namespace.c:4324  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0x8e/0x3a0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x76/0x7e  The bug can be reproduced w/ below scripts: - mount /dev/vdb /mnt1 - mount /dev/vdc /mnt2 - umount /mnt1 - mounnt /dev/vdb /mnt1  The reason is if we created two slab caches, named f2fs_xattr_entry-7:3 and f2fs_xattr_entry-7:7, and they have the same slab size. Actually, slab system will only create one slab cache core structure which has slab name of \"f2fs_xattr_entry-7:3\", and two slab caches share the same structure and cache address.  So, if we destroy f2fs_xattr_entry-7:3 cache w/ cache address, it will decrease reference count of slab cache, rather than release slab cache entirely, since there is one more user has referenced the cache.  Then, if we try to create slab cache w/ name \"f2fs_xattr_entry-7:3\" again, slab system will find that there is existed cache which has the same name and trigger the warning.  Let's changes to use global inline_xattr_slab instead of per-sb slab cache for fixing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68344",
                                "url": "https://ubuntu.com/security/CVE-2025-68344",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: wavefront: Fix integer overflow in sample size validation  The wavefront_send_sample() function has an integer overflow issue when validating sample size. The header->size field is u32 but gets cast to int for comparison with dev->freemem  Fix by using unsigned comparison to avoid integer overflow.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71077",
                                "url": "https://ubuntu.com/security/CVE-2025-71077",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tpm: Cap the number of PCR banks  tpm2_get_pcr_allocation() does not cap any upper limit for the number of banks. Cap the limit to eight banks so that out of bounds values coming from external I/O cause on only limited harm.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68282",
                                "url": "https://ubuntu.com/security/CVE-2025-68282",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: udc: fix use-after-free in usb_gadget_state_work  A race condition during gadget teardown can lead to a use-after-free in usb_gadget_state_work(), as reported by KASAN:    BUG: KASAN: invalid-access in sysfs_notify+0x2c/0xd0   Workqueue: events usb_gadget_state_work  The fundamental race occurs because a concurrent event (e.g., an interrupt) can call usb_gadget_set_state() and schedule gadget->work at any time during the cleanup process in usb_del_gadget().  Commit 399a45e5237c (\"usb: gadget: core: flush gadget workqueue after device removal\") attempted to fix this by moving flush_work() to after device_del(). However, this does not fully solve the race, as a new work item can still be scheduled *after* flush_work() completes but before the gadget's memory is freed, leading to the same use-after-free.  This patch fixes the race condition robustly by introducing a 'teardown' flag and a 'state_lock' spinlock to the usb_gadget struct. The flag is set during cleanup in usb_del_gadget() *before* calling flush_work() to prevent any new work from being scheduled once cleanup has commenced. The scheduling site, usb_gadget_set_state(), now checks this flag under the lock before queueing the work, thus safely closing the race window.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-22022",
                                "url": "https://ubuntu.com/security/CVE-2025-22022",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: xhci: Apply the link chain quirk on NEC isoc endpoints  Two clearly different specimens of NEC uPD720200 (one with start/stop bug, one without) were seen to cause IOMMU faults after some Missed Service Errors. Faulting address is immediately after a transfer ring segment and patched dynamic debug messages revealed that the MSE was received when waiting for a TD near the end of that segment:  [ 1.041954] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ffa08fe0 [ 1.042120] xhci_hcd: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0005 address=0xffa09000 flags=0x0000] [ 1.042146] xhci_hcd: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0005 address=0xffa09040 flags=0x0000]  It gets even funnier if the next page is a ring segment accessible to the HC. Below, it reports MSE in segment at ff1e8000, plows through a zero-filled page at ff1e9000 and starts reporting events for TRBs in page at ff1ea000 every microframe, instead of jumping to seg ff1e6000.  [ 7.041671] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ff1e8fe0 [ 7.041999] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ff1e8fe0 [ 7.042011] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042028] xhci_hcd: All TDs skipped for slot 1 ep 2. Clear skip flag. [ 7.042134] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042138] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 31 [ 7.042144] xhci_hcd: Looking for event-dma 00000000ff1ea040 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.042259] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042262] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 31 [ 7.042266] xhci_hcd: Looking for event-dma 00000000ff1ea050 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820  At some point completion events change from Isoch Buffer Overrun to Short Packet and the HC finally finds cycle bit mismatch in ff1ec000.  [ 7.098130] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 [ 7.098132] xhci_hcd: Looking for event-dma 00000000ff1ecc50 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.098254] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 [ 7.098256] xhci_hcd: Looking for event-dma 00000000ff1ecc60 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.098379] xhci_hcd: Overrun event on slot 1 ep 2  It's possible that data from the isochronous device were written to random buffers of pending TDs on other endpoints (either IN or OUT), other devices or even other HCs in the same IOMMU domain.  Lastly, an error from a different USB device on another HC. Was it caused by the above? I don't know, but it may have been. The disk was working without any other issues and generated PCIe traffic to starve the NEC of upstream BW and trigger those MSEs. The two HCs shared one x1 slot by means of a commercial \"PCIe splitter\" board.  [ 7.162604] usb 10-2: reset SuperSpeed USB device number 3 using xhci_hcd [ 7.178990] sd 9:0:0:0: [sdb] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x07 driverbyte=DRIVER_OK cmd_age=0s [ 7.179001] sd 9:0:0:0: [sdb] tag#0 CDB: opcode=0x28 28 00 04 02 ae 00 00 02 00 00 [ 7.179004] I/O error, dev sdb, sector 67284480 op 0x0:(READ) flags 0x80700 phys_seg 5 prio class 0  Fortunately, it appears that this ridiculous bug is avoided by setting the chain bit of Link TRBs on isochronous rings. Other ancient HCs are known which also expect the bit to be set and they ignore Link TRBs if it's not. Reportedly, 0.95 spec guaranteed that the bit is set.  The bandwidth-starved NEC HC running a 32KB/uframe UVC endpoint reports tens of MSEs per second and runs into the bug within seconds. Chaining Link TRBs allows the same workload to run for many minutes, many times.  No ne ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40110",
                                "url": "https://ubuntu.com/security/CVE-2025-40110",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vmwgfx: Fix a null-ptr access in the cursor snooper  Check that the resource which is converted to a surface exists before trying to use the cursor snooper on it.  vmw_cmd_res_check allows explicit invalid (SVGA3D_INVALID_ID) identifiers because some svga commands accept SVGA3D_INVALID_ID to mean \"no surface\", unfortunately functions that accept the actual surfaces as objects might (and in case of the cursor snooper, do not) be able to handle null objects. Make sure that we validate not only the identifier (via the vmw_cmd_res_check) but also check that the actual resource exists before trying to do something with it.  Fixes unchecked null-ptr reference in the snooping code.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-12 02:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38022",
                                "url": "https://ubuntu.com/security/CVE-2025-38022",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/core: Fix \"KASAN: slab-use-after-free Read in ib_register_device\" problem  Call Trace:   __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:408 [inline]  print_report+0xc3/0x670 mm/kasan/report.c:521  kasan_report+0xe0/0x110 mm/kasan/report.c:634  strlen+0x93/0xa0 lib/string.c:420  __fortify_strlen include/linux/fortify-string.h:268 [inline]  get_kobj_path_length lib/kobject.c:118 [inline]  kobject_get_path+0x3f/0x2a0 lib/kobject.c:158  kobject_uevent_env+0x289/0x1870 lib/kobject_uevent.c:545  ib_register_device drivers/infiniband/core/device.c:1472 [inline]  ib_register_device+0x8cf/0xe00 drivers/infiniband/core/device.c:1393  rxe_register_device+0x275/0x320 drivers/infiniband/sw/rxe/rxe_verbs.c:1552  rxe_net_add+0x8e/0xe0 drivers/infiniband/sw/rxe/rxe_net.c:550  rxe_newlink+0x70/0x190 drivers/infiniband/sw/rxe/rxe.c:225  nldev_newlink+0x3a3/0x680 drivers/infiniband/core/nldev.c:1796  rdma_nl_rcv_msg+0x387/0x6e0 drivers/infiniband/core/netlink.c:195  rdma_nl_rcv_skb.constprop.0.isra.0+0x2e5/0x450  netlink_unicast_kernel net/netlink/af_netlink.c:1313 [inline]  netlink_unicast+0x53a/0x7f0 net/netlink/af_netlink.c:1339  netlink_sendmsg+0x8d1/0xdd0 net/netlink/af_netlink.c:1883  sock_sendmsg_nosec net/socket.c:712 [inline]  __sock_sendmsg net/socket.c:727 [inline]  ____sys_sendmsg+0xa95/0xc70 net/socket.c:2566  ___sys_sendmsg+0x134/0x1d0 net/socket.c:2620  __sys_sendmsg+0x16d/0x220 net/socket.c:2652  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xcd/0x260 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  This problem is similar to the problem that the commit 1d6a9e7449e2 (\"RDMA/core: Fix use-after-free when rename device name\") fixes.  The root cause is: the function ib_device_rename() renames the name with lock. But in the function kobject_uevent(), this name is accessed without lock protection at the same time.  The solution is to add the lock protection when this name is accessed in the function kobject_uevent().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-06-18 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71083",
                                "url": "https://ubuntu.com/security/CVE-2025-71083",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/ttm: Avoid NULL pointer deref for evicted BOs  It is possible for a BO to exist that is not currently associated with a resource, e.g. because it has been evicted.  When devcoredump tries to read the contents of all BOs for dumping, we need to expect this as well -- in this case, ENODATA is recorded instead of the buffer contents.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71079",
                                "url": "https://ubuntu.com/security/CVE-2025-71079",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: nfc: fix deadlock between nfc_unregister_device and rfkill_fop_write  A deadlock can occur between nfc_unregister_device() and rfkill_fop_write() due to lock ordering inversion between device_lock and rfkill_global_mutex.  The problematic lock order is:  Thread A (rfkill_fop_write):   rfkill_fop_write()     mutex_lock(&rfkill_global_mutex)       rfkill_set_block()         nfc_rfkill_set_block()           nfc_dev_down()             device_lock(&dev->dev)    <- waits for device_lock  Thread B (nfc_unregister_device):   nfc_unregister_device()     device_lock(&dev->dev)       rfkill_unregister()         mutex_lock(&rfkill_global_mutex)  <- waits for rfkill_global_mutex  This creates a classic ABBA deadlock scenario.  Fix this by moving rfkill_unregister() and rfkill_destroy() outside the device_lock critical section. Store the rfkill pointer in a local variable before releasing the lock, then call rfkill_unregister() after releasing device_lock.  This change is safe because rfkill_fop_write() holds rfkill_global_mutex while calling the rfkill callbacks, and rfkill_unregister() also acquires rfkill_global_mutex before cleanup. Therefore, rfkill_unregister() will wait for any ongoing callback to complete before proceeding, and device_del() is only called after rfkill_unregister() returns, preventing any use-after-free.  The similar lock ordering in nfc_register_device() (device_lock -> rfkill_global_mutex via rfkill_register) is safe because during registration the device is not yet in rfkill_list, so no concurrent rfkill operations can occur on this device.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71093",
                                "url": "https://ubuntu.com/security/CVE-2025-71093",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  e1000: fix OOB in e1000_tbi_should_accept()  In e1000_tbi_should_accept() we read the last byte of the frame via 'data[length - 1]' to evaluate the TBI workaround. If the descriptor- reported length is zero or larger than the actual RX buffer size, this read goes out of bounds and can hit unrelated slab objects. The issue is observed from the NAPI receive path (e1000_clean_rx_irq):  ================================================================== BUG: KASAN: slab-out-of-bounds in e1000_tbi_should_accept+0x610/0x790 Read of size 1 at addr ffff888014114e54 by task sshd/363  CPU: 0 PID: 363 Comm: sshd Not tainted 5.18.0-rc1 #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014 Call Trace:  <IRQ>  dump_stack_lvl+0x5a/0x74  print_address_description+0x7b/0x440  print_report+0x101/0x200  kasan_report+0xc1/0xf0  e1000_tbi_should_accept+0x610/0x790  e1000_clean_rx_irq+0xa8c/0x1110  e1000_clean+0xde2/0x3c10  __napi_poll+0x98/0x380  net_rx_action+0x491/0xa20  __do_softirq+0x2c9/0x61d  do_softirq+0xd1/0x120  </IRQ>  <TASK>  __local_bh_enable_ip+0xfe/0x130  ip_finish_output2+0x7d5/0xb00  __ip_queue_xmit+0xe24/0x1ab0  __tcp_transmit_skb+0x1bcb/0x3340  tcp_write_xmit+0x175d/0x6bd0  __tcp_push_pending_frames+0x7b/0x280  tcp_sendmsg_locked+0x2e4f/0x32d0  tcp_sendmsg+0x24/0x40  sock_write_iter+0x322/0x430  vfs_write+0x56c/0xa60  ksys_write+0xd1/0x190  do_syscall_64+0x43/0x90  entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f511b476b10 Code: 73 01 c3 48 8b 0d 88 d3 2b 00 f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 83 3d f9 2b 2c 00 00 75 10 b8 01 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 31 c3 48 83 ec 08 e8 8e 9b 01 00 48 89 04 24 RSP: 002b:00007ffc9211d4e8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 0000000000004024 RCX: 00007f511b476b10 RDX: 0000000000004024 RSI: 0000559a9385962c RDI: 0000000000000003 RBP: 0000559a9383a400 R08: fffffffffffffff0 R09: 0000000000004f00 R10: 0000000000000070 R11: 0000000000000246 R12: 0000000000000000 R13: 00007ffc9211d57f R14: 0000559a9347bde7 R15: 0000000000000003  </TASK> Allocated by task 1:  __kasan_krealloc+0x131/0x1c0  krealloc+0x90/0xc0  add_sysfs_param+0xcb/0x8a0  kernel_add_sysfs_param+0x81/0xd4  param_sysfs_builtin+0x138/0x1a6  param_sysfs_init+0x57/0x5b  do_one_initcall+0x104/0x250  do_initcall_level+0x102/0x132  do_initcalls+0x46/0x74  kernel_init_freeable+0x28f/0x393  kernel_init+0x14/0x1a0  ret_from_fork+0x22/0x30 The buggy address belongs to the object at ffff888014114000  which belongs to the cache kmalloc-2k of size 2048 The buggy address is located 1620 bytes to the right of  2048-byte region [ffff888014114000, ffff888014114800] The buggy address belongs to the physical page: page:ffffea0000504400 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x14110 head:ffffea0000504400 order:3 compound_mapcount:0 compound_pincount:0 flags: 0x100000000010200(slab|head|node=0|zone=1) raw: 0100000000010200 0000000000000000 dead000000000001 ffff888013442000 raw: 0000000000000000 0000000000080008 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected ==================================================================  This happens because the TBI check unconditionally dereferences the last byte without validating the reported length first:  \tu8 last_byte = *(data + length - 1);  Fix by rejecting the frame early if the length is zero, or if it exceeds adapter->rx_buffer_len. This preserves the TBI workaround semantics for valid frames and prevents touching memory beyond the RX buffer.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71084",
                                "url": "https://ubuntu.com/security/CVE-2025-71084",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/cm: Fix leaking the multicast GID table reference  If the CM ID is destroyed while the CM event for multicast creating is still queued the cancel_work_sync() will prevent the work from running which also prevents destroying the ah_attr. This leaks a refcount and triggers a WARN:     GID entry ref leak for dev syz1 index 2 ref=573    WARNING: CPU: 1 PID: 655 at drivers/infiniband/core/cache.c:809 release_gid_table drivers/infiniband/core/cache.c:806 [inline]    WARNING: CPU: 1 PID: 655 at drivers/infiniband/core/cache.c:809 gid_table_release_one+0x284/0x3cc drivers/infiniband/core/cache.c:886  Destroy the ah_attr after canceling the work, it is safe to call this twice.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71096",
                                "url": "https://ubuntu.com/security/CVE-2025-71096",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly  The netlink response for RDMA_NL_LS_OP_IP_RESOLVE should always have a LS_NLA_TYPE_DGID attribute, it is invalid if it does not.  Use the nl parsing logic properly and call nla_parse_deprecated() to fill the nlattrs array and then directly index that array to get the data for the DGID. Just fail if it is NULL.  Remove the for loop searching for the nla, and squash the validation and parsing into one function.  Fixes an uninitialized read from the stack triggered by userspace if it does not provide the DGID to a kernel initiated RDMA_NL_LS_OP_IP_RESOLVE query.      BUG: KMSAN: uninit-value in hex_byte_pack include/linux/hex.h:13 [inline]     BUG: KMSAN: uninit-value in ip6_string+0xef4/0x13a0 lib/vsprintf.c:1490      hex_byte_pack include/linux/hex.h:13 [inline]      ip6_string+0xef4/0x13a0 lib/vsprintf.c:1490      ip6_addr_string+0x18a/0x3e0 lib/vsprintf.c:1509      ip_addr_string+0x245/0xee0 lib/vsprintf.c:1633      pointer+0xc09/0x1bd0 lib/vsprintf.c:2542      vsnprintf+0xf8a/0x1bd0 lib/vsprintf.c:2930      vprintk_store+0x3ae/0x1530 kernel/printk/printk.c:2279      vprintk_emit+0x307/0xcd0 kernel/printk/printk.c:2426      vprintk_default+0x3f/0x50 kernel/printk/printk.c:2465      vprintk+0x36/0x50 kernel/printk/printk_safe.c:82      _printk+0x17e/0x1b0 kernel/printk/printk.c:2475      ib_nl_process_good_ip_rsep drivers/infiniband/core/addr.c:128 [inline]      ib_nl_handle_ip_res_resp+0x963/0x9d0 drivers/infiniband/core/addr.c:141      rdma_nl_rcv_msg drivers/infiniband/core/netlink.c:-1 [inline]      rdma_nl_rcv_skb drivers/infiniband/core/netlink.c:239 [inline]      rdma_nl_rcv+0xefa/0x11c0 drivers/infiniband/core/netlink.c:259      netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]      netlink_unicast+0xf04/0x12b0 net/netlink/af_netlink.c:1346      netlink_sendmsg+0x10b3/0x1250 net/netlink/af_netlink.c:1896      sock_sendmsg_nosec net/socket.c:714 [inline]      __sock_sendmsg+0x333/0x3d0 net/socket.c:729      ____sys_sendmsg+0x7e0/0xd80 net/socket.c:2617      ___sys_sendmsg+0x271/0x3b0 net/socket.c:2671      __sys_sendmsg+0x1aa/0x300 net/socket.c:2703      __compat_sys_sendmsg net/compat.c:346 [inline]      __do_compat_sys_sendmsg net/compat.c:353 [inline]      __se_compat_sys_sendmsg net/compat.c:350 [inline]      __ia32_compat_sys_sendmsg+0xa4/0x100 net/compat.c:350      ia32_sys_call+0x3f6c/0x4310 arch/x86/include/generated/asm/syscalls_32.h:371      do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]      __do_fast_syscall_32+0xb0/0x150 arch/x86/entry/syscall_32.c:306      do_fast_syscall_32+0x38/0x80 arch/x86/entry/syscall_32.c:331      do_SYSENTER_32+0x1f/0x30 arch/x86/entry/syscall_32.c:3",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71136",
                                "url": "https://ubuntu.com/security/CVE-2025-71136",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: adv7842: Avoid possible out-of-bounds array accesses in adv7842_cp_log_status()  It's possible for cp_read() and hdmi_read() to return -EIO. Those values are further used as indexes for accessing arrays.  Fix that by checking return values where it's needed.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71133",
                                "url": "https://ubuntu.com/security/CVE-2025-71133",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/irdma: avoid invalid read in irdma_net_event  irdma_net_event() should not dereference anything from \"neigh\" (alias \"ptr\") until it has checked that the event is NETEVENT_NEIGH_UPDATE. Other events come with different structures pointed to by \"ptr\" and they may be smaller than struct neighbour.  Move the read of neigh->dev under the NETEVENT_NEIGH_UPDATE case.  The bug is mostly harmless, but it triggers KASAN on debug kernels:   BUG: KASAN: stack-out-of-bounds in irdma_net_event+0x32e/0x3b0 [irdma]  Read of size 8 at addr ffffc900075e07f0 by task kworker/27:2/542554   CPU: 27 PID: 542554 Comm: kworker/27:2 Kdump: loaded Not tainted 5.14.0-630.el9.x86_64+debug #1  Hardware name: [...]  Workqueue: events rt6_probe_deferred  Call Trace:   <IRQ>   dump_stack_lvl+0x60/0xb0   print_address_description.constprop.0+0x2c/0x3f0   print_report+0xb4/0x270   kasan_report+0x92/0xc0   irdma_net_event+0x32e/0x3b0 [irdma]   notifier_call_chain+0x9e/0x180   atomic_notifier_call_chain+0x5c/0x110   rt6_do_redirect+0xb91/0x1080   tcp_v6_err+0xe9b/0x13e0   icmpv6_notify+0x2b2/0x630   ndisc_redirect_rcv+0x328/0x530   icmpv6_rcv+0xc16/0x1360   ip6_protocol_deliver_rcu+0xb84/0x12e0   ip6_input_finish+0x117/0x240   ip6_input+0xc4/0x370   ipv6_rcv+0x420/0x7d0   __netif_receive_skb_one_core+0x118/0x1b0   process_backlog+0xd1/0x5d0   __napi_poll.constprop.0+0xa3/0x440   net_rx_action+0x78a/0xba0   handle_softirqs+0x2d4/0x9c0   do_softirq+0xad/0xe0   </IRQ>",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71086",
                                "url": "https://ubuntu.com/security/CVE-2025-71086",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: rose: fix invalid array index in rose_kill_by_device()  rose_kill_by_device() collects sockets into a local array[] and then iterates over them to disconnect sockets bound to a device being brought down.  The loop mistakenly indexes array[cnt] instead of array[i]. For cnt < ARRAY_SIZE(array), this reads an uninitialized entry; for cnt == ARRAY_SIZE(array), it is an out-of-bounds read. Either case can lead to an invalid socket pointer dereference and also leaks references taken via sock_hold().  Fix the index to use i.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71097",
                                "url": "https://ubuntu.com/security/CVE-2025-71097",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: Fix reference count leak when using error routes with nexthop objects  When a nexthop object is deleted, it is marked as dead and then fib_table_flush() is called to flush all the routes that are using the dead nexthop.  The current logic in fib_table_flush() is to only flush error routes (e.g., blackhole) when it is called as part of network namespace dismantle (i.e., with flush_all=true). Therefore, error routes are not flushed when their nexthop object is deleted:   # ip link add name dummy1 up type dummy  # ip nexthop add id 1 dev dummy1  # ip route add 198.51.100.1/32 nhid 1  # ip route add blackhole 198.51.100.2/32 nhid 1  # ip nexthop del id 1  # ip route show  blackhole 198.51.100.2 nhid 1 dev dummy1  As such, they keep holding a reference on the nexthop object which in turn holds a reference on the nexthop device, resulting in a reference count leak:   # ip link del dev dummy1  [   70.516258] unregister_netdevice: waiting for dummy1 to become free. Usage count = 2  Fix by flushing error routes when their nexthop is marked as dead.  IPv6 does not suffer from this problem.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71085",
                                "url": "https://ubuntu.com/security/CVE-2025-71085",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()  There exists a kernel oops caused by a BUG_ON(nhead < 0) at net/core/skbuff.c:2232 in pskb_expand_head(). This bug is triggered as part of the calipso_skbuff_setattr() routine when skb_cow() is passed headroom > INT_MAX (i.e. (int)(skb_headroom(skb) + len_delta) < 0).  The root cause of the bug is due to an implicit integer cast in __skb_cow(). The check (headroom > skb_headroom(skb)) is meant to ensure that delta = headroom - skb_headroom(skb) is never negative, otherwise we will trigger a BUG_ON in pskb_expand_head(). However, if headroom > INT_MAX and delta <= -NET_SKB_PAD, the check passes, delta becomes negative, and pskb_expand_head() is passed a negative value for nhead.  Fix the trigger condition in calipso_skbuff_setattr(). Avoid passing \"negative\" headroom sizes to skb_cow() within calipso_skbuff_setattr() by only using skb_cow() to grow headroom.  PoC: \tUsing `netlabelctl` tool:          netlabelctl map del default         netlabelctl calipso add pass doi:7         netlabelctl map add default address:0::1/128 protocol:calipso,7          Then run the following PoC:          int fd = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);          // setup msghdr         int cmsg_size = 2;         int cmsg_len = 0x60;         struct msghdr msg;         struct sockaddr_in6 dest_addr;         struct cmsghdr * cmsg = (struct cmsghdr *) calloc(1,                         sizeof(struct cmsghdr) + cmsg_len);         msg.msg_name = &dest_addr;         msg.msg_namelen = sizeof(dest_addr);         msg.msg_iov = NULL;         msg.msg_iovlen = 0;         msg.msg_control = cmsg;         msg.msg_controllen = cmsg_len;         msg.msg_flags = 0;          // setup sockaddr         dest_addr.sin6_family = AF_INET6;         dest_addr.sin6_port = htons(31337);         dest_addr.sin6_flowinfo = htonl(31337);         dest_addr.sin6_addr = in6addr_loopback;         dest_addr.sin6_scope_id = 31337;          // setup cmsghdr         cmsg->cmsg_len = cmsg_len;         cmsg->cmsg_level = IPPROTO_IPV6;         cmsg->cmsg_type = IPV6_HOPOPTS;         char * hop_hdr = (char *)cmsg + sizeof(struct cmsghdr);         hop_hdr[1] = 0x9; //set hop size - (0x9 + 1) * 8 = 80          sendmsg(fd, &msg, 0);",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71137",
                                "url": "https://ubuntu.com/security/CVE-2025-71137",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  octeontx2-pf: fix \"UBSAN: shift-out-of-bounds error\"  This patch ensures that the RX ring size (rx_pending) is not set below the permitted length. This avoids UBSAN shift-out-of-bounds errors when users passes small or zero ring sizes via ethtool -G.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71094",
                                "url": "https://ubuntu.com/security/CVE-2025-71094",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: asix: validate PHY address before use  The ASIX driver reads the PHY address from the USB device via asix_read_phy_addr(). A malicious or faulty device can return an invalid address (>= PHY_MAX_ADDR), which causes a warning in mdiobus_get_phy():    addr 207 out of range   WARNING: drivers/net/phy/mdio_bus.c:76  Validate the PHY address in asix_read_phy_addr() and remove the now-redundant check in ax88172a.c.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71132",
                                "url": "https://ubuntu.com/security/CVE-2025-71132",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smc91x: fix broken irq-context in PREEMPT_RT  When smc91x.c is built with PREEMPT_RT, the following splat occurs in FVP_RevC:  [   13.055000] smc91x LNRO0003:00 eth0: link up, 10Mbps, half-duplex, lpa 0x0000 [   13.062137] BUG: workqueue leaked atomic, lock or RCU: kworker/2:1[106] [   13.062137]      preempt=0x00000000 lock=0->0 RCU=0->1 workfn=mld_ifc_work [   13.062266] C ** replaying previous printk message ** [   13.062266] CPU: 2 UID: 0 PID: 106 Comm: kworker/2:1 Not tainted 6.18.0-dirty #179 PREEMPT_{RT,(full)} [   13.062353] Hardware name:  , BIOS [   13.062382] Workqueue: mld mld_ifc_work [   13.062469] Call trace: [   13.062494]  show_stack+0x24/0x40 (C) [   13.062602]  __dump_stack+0x28/0x48 [   13.062710]  dump_stack_lvl+0x7c/0xb0 [   13.062818]  dump_stack+0x18/0x34 [   13.062926]  process_scheduled_works+0x294/0x450 [   13.063043]  worker_thread+0x260/0x3d8 [   13.063124]  kthread+0x1c4/0x228 [   13.063235]  ret_from_fork+0x10/0x20  This happens because smc_special_trylock() disables IRQs even on PREEMPT_RT, but smc_special_unlock() does not restore IRQs on PREEMPT_RT. The reason is that smc_special_unlock() calls spin_unlock_irqrestore(), and rcu_read_unlock_bh() in __dev_queue_xmit() cannot invoke rcu_read_unlock() through __local_bh_enable_ip() when current->softirq_disable_cnt becomes zero.  To address this issue, replace smc_special_trylock() with spin_trylock_irqsave().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71154",
                                "url": "https://ubuntu.com/security/CVE-2025-71154",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: rtl8150: fix memory leak on usb_submit_urb() failure  In async_set_registers(), when usb_submit_urb() fails, the allocated   async_req structure and URB are not freed, causing a memory leak.    The completion callback async_set_reg_cb() is responsible for freeing   these allocations, but it is only called after the URB is successfully   submitted and completes (successfully or with error). If submission   fails, the callback never runs and the memory is leaked.    Fix this by freeing both the URB and the request structure in the error   path when usb_submit_urb() fails.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71091",
                                "url": "https://ubuntu.com/security/CVE-2025-71091",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  team: fix check for port enabled in team_queue_override_port_prio_changed()  There has been a syzkaller bug reported recently with the following trace:  list_del corruption, ffff888058bea080->prev is LIST_POISON2 (dead000000000122) ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:59! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 3 UID: 0 PID: 21246 Comm: syz.0.2928 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:__list_del_entry_valid_or_report+0x13e/0x200 lib/list_debug.c:59 Code: 48 c7 c7 e0 71 f0 8b e8 30 08 ef fc 90 0f 0b 48 89 ef e8 a5 02 55 fd 48 89 ea 48 89 de 48 c7 c7 40 72 f0 8b e8 13 08 ef fc 90 <0f> 0b 48 89 ef e8 88 02 55 fd 48 89 ea 48 b8 00 00 00 00 00 fc ff RSP: 0018:ffffc9000d49f370 EFLAGS: 00010286 RAX: 000000000000004e RBX: ffff888058bea080 RCX: ffffc9002817d000 RDX: 0000000000000000 RSI: ffffffff819becc6 RDI: 0000000000000005 RBP: dead000000000122 R08: 0000000000000005 R09: 0000000000000000 R10: 0000000080000000 R11: 0000000000000001 R12: ffff888039e9c230 R13: ffff888058bea088 R14: ffff888058bea080 R15: ffff888055461480 FS:  00007fbbcfe6f6c0(0000) GS:ffff8880d6d0a000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000110c3afcb0 CR3: 00000000382c7000 CR4: 0000000000352ef0 Call Trace:  <TASK>  __list_del_entry_valid include/linux/list.h:132 [inline]  __list_del_entry include/linux/list.h:223 [inline]  list_del_rcu include/linux/rculist.h:178 [inline]  __team_queue_override_port_del drivers/net/team/team_core.c:826 [inline]  __team_queue_override_port_del drivers/net/team/team_core.c:821 [inline]  team_queue_override_port_prio_changed drivers/net/team/team_core.c:883 [inline]  team_priority_option_set+0x171/0x2f0 drivers/net/team/team_core.c:1534  team_option_set drivers/net/team/team_core.c:376 [inline]  team_nl_options_set_doit+0x8ae/0xe60 drivers/net/team/team_core.c:2653  genl_family_rcv_msg_doit+0x209/0x2f0 net/netlink/genetlink.c:1115  genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]  genl_rcv_msg+0x55c/0x800 net/netlink/genetlink.c:1210  netlink_rcv_skb+0x158/0x420 net/netlink/af_netlink.c:2552  genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219  netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]  netlink_unicast+0x5aa/0x870 net/netlink/af_netlink.c:1346  netlink_sendmsg+0x8c8/0xdd0 net/netlink/af_netlink.c:1896  sock_sendmsg_nosec net/socket.c:727 [inline]  __sock_sendmsg net/socket.c:742 [inline]  ____sys_sendmsg+0xa98/0xc70 net/socket.c:2630  ___sys_sendmsg+0x134/0x1d0 net/socket.c:2684  __sys_sendmsg+0x16d/0x220 net/socket.c:2716  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xcd/0xfa0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  The problem is in this flow: 1) Port is enabled, queue_id != 0, in qom_list 2) Port gets disabled         -> team_port_disable()         -> team_queue_override_port_del()         -> del (removed from list) 3) Port is disabled, queue_id != 0, not in any list 4) Priority changes         -> team_queue_override_port_prio_changed()         -> checks: port disabled && queue_id != 0         -> calls del - hits the BUG as it is removed already  To fix this, change the check in team_queue_override_port_prio_changed() so it returns early if port is not enabled.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71098",
                                "url": "https://ubuntu.com/security/CVE-2025-71098",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ip6_gre: make ip6gre_header() robust  Over the years, syzbot found many ways to crash the kernel in ip6gre_header() [1].  This involves team or bonding drivers ability to dynamically change their dev->needed_headroom and/or dev->hard_header_len  In this particular crash mld_newpack() allocated an skb with a too small reserve/headroom, and by the time mld_sendpack() was called, syzbot managed to attach an ip6gre device.  [1] skbuff: skb_under_panic: text:ffffffff8a1d69a8 len:136 put:40 head:ffff888059bc7000 data:ffff888059bc6fe8 tail:0x70 end:0x6c0 dev:team0 ------------[ cut here ]------------  kernel BUG at net/core/skbuff.c:213 !  <TASK>   skb_under_panic net/core/skbuff.c:223 [inline]   skb_push+0xc3/0xe0 net/core/skbuff.c:2641   ip6gre_header+0xc8/0x790 net/ipv6/ip6_gre.c:1371   dev_hard_header include/linux/netdevice.h:3436 [inline]   neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618   neigh_output include/net/neighbour.h:556 [inline]   ip6_finish_output2+0xfb3/0x1480 net/ipv6/ip6_output.c:136  __ip6_finish_output net/ipv6/ip6_output.c:-1 [inline]   ip6_finish_output+0x234/0x7d0 net/ipv6/ip6_output.c:220   NF_HOOK_COND include/linux/netfilter.h:307 [inline]   ip6_output+0x340/0x550 net/ipv6/ip6_output.c:247   NF_HOOK+0x9e/0x380 include/linux/netfilter.h:318   mld_sendpack+0x8d4/0xe60 net/ipv6/mcast.c:1855   mld_send_cr net/ipv6/mcast.c:2154 [inline]   mld_ifc_work+0x83e/0xd60 net/ipv6/mcast.c:2693",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71082",
                                "url": "https://ubuntu.com/security/CVE-2025-71082",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: btusb: revert use of devm_kzalloc in btusb  This reverts commit 98921dbd00c4e (\"Bluetooth: Use devm_kzalloc in btusb.c file\").  In btusb_probe(), we use devm_kzalloc() to allocate the btusb data. This ties the lifetime of all the btusb data to the binding of a driver to one interface, INTF. In a driver that binds to other interfaces, ISOC and DIAG, this is an accident waiting to happen.  The issue is revealed in btusb_disconnect(), where calling usb_driver_release_interface(&btusb_driver, data->intf) will have devm free the data that is also being used by the other interfaces of the driver that may not be released yet.  To fix this, revert the use of devm and go back to freeing memory explicitly.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71131",
                                "url": "https://ubuntu.com/security/CVE-2025-71131",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: seqiv - Do not use req->iv after crypto_aead_encrypt  As soon as crypto_aead_encrypt is called, the underlying request may be freed by an asynchronous completion.  Thus dereferencing req->iv after it returns is invalid.  Instead of checking req->iv against info, create a new variable unaligned_info and use it for that purpose instead.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71087",
                                "url": "https://ubuntu.com/security/CVE-2025-71087",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iavf: fix off-by-one issues in iavf_config_rss_reg()  There are off-by-one bugs when configuring RSS hash key and lookup table, causing out-of-bounds reads to memory [1] and out-of-bounds writes to device registers.  Before commit 43a3d9ba34c9 (\"i40evf: Allow PF driver to configure RSS\"), the loop upper bounds were:     i <= I40E_VFQF_{HKEY,HLUT}_MAX_INDEX which is safe since the value is the last valid index.  That commit changed the bounds to:     i <= adapter->rss_{key,lut}_size / 4 where `rss_{key,lut}_size / 4` is the number of dwords, so the last valid index is `(rss_{key,lut}_size / 4) - 1`. Therefore, using `<=` accesses one element past the end.  Fix the issues by using `<` instead of `<=`, ensuring we do not exceed the bounds.  [1] KASAN splat about rss_key_size off-by-one   BUG: KASAN: slab-out-of-bounds in iavf_config_rss+0x619/0x800   Read of size 4 at addr ffff888102c50134 by task kworker/u8:6/63    CPU: 0 UID: 0 PID: 63 Comm: kworker/u8:6 Not tainted 6.18.0-rc2-enjuk-tnguy-00378-g3005f5b77652-dirty #156 PREEMPT(voluntary)   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014   Workqueue: iavf iavf_watchdog_task   Call Trace:    <TASK>    dump_stack_lvl+0x6f/0xb0    print_report+0x170/0x4f3    kasan_report+0xe1/0x1a0    iavf_config_rss+0x619/0x800    iavf_watchdog_task+0x2be7/0x3230    process_one_work+0x7fd/0x1420    worker_thread+0x4d1/0xd40    kthread+0x344/0x660    ret_from_fork+0x249/0x320    ret_from_fork_asm+0x1a/0x30    </TASK>    Allocated by task 63:    kasan_save_stack+0x30/0x50    kasan_save_track+0x14/0x30    __kasan_kmalloc+0x7f/0x90    __kmalloc_noprof+0x246/0x6f0    iavf_watchdog_task+0x28fc/0x3230    process_one_work+0x7fd/0x1420    worker_thread+0x4d1/0xd40    kthread+0x344/0x660    ret_from_fork+0x249/0x320    ret_from_fork_asm+0x1a/0x30    The buggy address belongs to the object at ffff888102c50100    which belongs to the cache kmalloc-64 of size 64   The buggy address is located 0 bytes to the right of    allocated 52-byte region [ffff888102c50100, ffff888102c50134)    The buggy address belongs to the physical page:   page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x102c50   flags: 0x200000000000000(node=0|zone=2)   page_type: f5(slab)   raw: 0200000000000000 ffff8881000418c0 dead000000000122 0000000000000000   raw: 0000000000000000 0000000080200020 00000000f5000000 0000000000000000   page dumped because: kasan: bad access detected    Memory state around the buggy address:    ffff888102c50000: 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc fc    ffff888102c50080: 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc fc   >ffff888102c50100: 00 00 00 00 00 00 04 fc fc fc fc fc fc fc fc fc                                        ^    ffff888102c50180: 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc    ffff888102c50200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71111",
                                "url": "https://ubuntu.com/security/CVE-2025-71111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hwmon: (w83791d) Convert macros to functions to avoid TOCTOU  The macro FAN_FROM_REG evaluates its arguments multiple times. When used in lockless contexts involving shared driver data, this leads to Time-of-Check to Time-of-Use (TOCTOU) race conditions, potentially causing divide-by-zero errors.  Convert the macro to a static function. This guarantees that arguments are evaluated only once (pass-by-value), preventing the race conditions.  Additionally, in store_fan_div, move the calculation of the minimum limit inside the update lock. This ensures that the read-modify-write sequence operates on consistent data.  Adhere to the principle of minimal changes by only converting macros that evaluate arguments multiple times and are used in lockless contexts.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68814",
                                "url": "https://ubuntu.com/security/CVE-2025-68814",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  io_uring: fix filename leak in __io_openat_prep()   __io_openat_prep() allocates a struct filename using getname(). However, for the condition of the file being installed in the fixed file table as well as having O_CLOEXEC flag set, the function returns early. At that point, the request doesn't have REQ_F_NEED_CLEANUP flag set. Due to this, the memory for the newly allocated struct filename is not cleaned up, causing a memory leak.  Fix this by setting the REQ_F_NEED_CLEANUP for the request just after the successful getname() call, so that when the request is torn down, the filename will be cleaned up, along with other resources needing cleanup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68788",
                                "url": "https://ubuntu.com/security/CVE-2025-68788",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fsnotify: do not generate ACCESS/MODIFY events on child for special files  inotify/fanotify do not allow users with no read access to a file to subscribe to events (e.g. IN_ACCESS/IN_MODIFY), but they do allow the same user to subscribe for watching events on children when the user has access to the parent directory (e.g. /dev).  Users with no read access to a file but with read access to its parent directory can still stat the file and see if it was accessed/modified via atime/mtime change.  The same is not true for special files (e.g. /dev/null). Users will not generally observe atime/mtime changes when other users read/write to special files, only when someone sets atime/mtime via utimensat().  Align fsnotify events with this stat behavior and do not generate ACCESS/MODIFY events to parent watchers on read/write of special files. The events are still generated to parent watchers on utimensat(). This closes some side-channels that could be possibly used for information exfiltration [1].  [1] https://snee.la/pdf/pubs/file-notification-attacks.pdf",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71125",
                                "url": "https://ubuntu.com/security/CVE-2025-71125",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tracing: Do not register unsupported perf events  Synthetic events currently do not have a function to register perf events. This leads to calling the tracepoint register functions with a NULL function pointer which triggers:   ------------[ cut here ]------------  WARNING: kernel/tracepoint.c:175 at tracepoint_add_func+0x357/0x370, CPU#2: perf/2272  Modules linked in: kvm_intel kvm irqbypass  CPU: 2 UID: 0 PID: 2272 Comm: perf Not tainted 6.18.0-ftest-11964-ge022764176fc-dirty #323 PREEMPTLAZY  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014  RIP: 0010:tracepoint_add_func+0x357/0x370  Code: 28 9c e8 4c 0b f5 ff eb 0f 4c 89 f7 48 c7 c6 80 4d 28 9c e8 ab 89 f4 ff 31 c0 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc cc cc cc cc <0f> 0b 49 c7 c6 ea ff ff ff e9 ee fe ff ff 0f 0b e9 f9 fe ff ff 0f  RSP: 0018:ffffabc0c44d3c40 EFLAGS: 00010246  RAX: 0000000000000001 RBX: ffff9380aa9e4060 RCX: 0000000000000000  RDX: 000000000000000a RSI: ffffffff9e1d4a98 RDI: ffff937fcf5fd6c8  RBP: 0000000000000001 R08: 0000000000000007 R09: ffff937fcf5fc780  R10: 0000000000000003 R11: ffffffff9c193910 R12: 000000000000000a  R13: ffffffff9e1e5888 R14: 0000000000000000 R15: ffffabc0c44d3c78  FS:  00007f6202f5f340(0000) GS:ffff93819f00f000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 000055d3162281a8 CR3: 0000000106a56003 CR4: 0000000000172ef0  Call Trace:   <TASK>   tracepoint_probe_register+0x5d/0x90   synth_event_reg+0x3c/0x60   perf_trace_event_init+0x204/0x340   perf_trace_init+0x85/0xd0   perf_tp_event_init+0x2e/0x50   perf_try_init_event+0x6f/0x230   ? perf_event_alloc+0x4bb/0xdc0   perf_event_alloc+0x65a/0xdc0   __se_sys_perf_event_open+0x290/0x9f0   do_syscall_64+0x93/0x7b0   ? entry_SYSCALL_64_after_hwframe+0x76/0x7e   ? trace_hardirqs_off+0x53/0xc0   entry_SYSCALL_64_after_hwframe+0x76/0x7e  Instead, have the code return -ENODEV, which doesn't warn and has perf error out with:   # perf record -e synthetic:futex_wait Error: The sys_perf_event_open() syscall returned with 19 (No such device) for event (synthetic:futex_wait). \"dmesg | grep -i perf\" may provide additional information.  Ideally perf should support synthetic events, but for now just fix the warning. The support can come later.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71104",
                                "url": "https://ubuntu.com/security/CVE-2025-71104",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV timer  When advancing the target expiration for the guest's APIC timer in periodic mode, set the expiration to \"now\" if the target expiration is in the past (similar to what is done in update_target_expiration()).  Blindly adding the period to the previous target expiration can result in KVM generating a practically unbounded number of hrtimer IRQs due to programming an expired timer over and over.  In extreme scenarios, e.g. if userspace pauses/suspends a VM for an extended duration, this can even cause hard lockups in the host.  Currently, the bug only affects Intel CPUs when using the hypervisor timer (HV timer), a.k.a. the VMX preemption timer.  Unlike the software timer, a.k.a. hrtimer, which KVM keeps running even on exits to userspace, the HV timer only runs while the guest is active.  As a result, if the vCPU does not run for an extended duration, there will be a huge gap between the target expiration and the current time the vCPU resumes running. Because the target expiration is incremented by only one period on each timer expiration, this leads to a series of timer expirations occurring rapidly after the vCPU/VM resumes.  More critically, when the vCPU first triggers a periodic HV timer expiration after resuming, advancing the expiration by only one period will result in a target expiration in the past.  As a result, the delta may be calculated as a negative value.  When the delta is converted into an absolute value (tscdeadline is an unsigned u64), the resulting value can overflow what the HV timer is capable of programming.  I.e. the large value will exceed the VMX Preemption Timer's maximum bit width of cpu_preemption_timer_multi + 32, and thus cause KVM to switch from the HV timer to the software timer (hrtimers).  After switching to the software timer, periodic timer expiration callbacks may be executed consecutively within a single clock interrupt handler, because hrtimers honors KVM's request for an expiration in the past and immediately re-invokes KVM's callback after reprogramming.  And because the interrupt handler runs with IRQs disabled, restarting KVM's hrtimer over and over until the target expiration is advanced to \"now\" can result in a hard lockup.  E.g. the following hard lockup was triggered in the host when running a Windows VM (only relevant because it used the APIC timer in periodic mode) after resuming the VM from a long suspend (in the host).    NMI watchdog: Watchdog detected hard LOCKUP on cpu 45   ...   RIP: 0010:advance_periodic_target_expiration+0x4d/0x80 [kvm]   ...   RSP: 0018:ff4f88f5d98d8ef0 EFLAGS: 00000046   RAX: fff0103f91be678e RBX: fff0103f91be678e RCX: 00843a7d9e127bcc   RDX: 0000000000000002 RSI: 0052ca4003697505 RDI: ff440d5bfbdbd500   RBP: ff440d5956f99200 R08: ff2ff2a42deb6a84 R09: 000000000002a6c0   R10: 0122d794016332b3 R11: 0000000000000000 R12: ff440db1af39cfc0   R13: ff440db1af39cfc0 R14: ffffffffc0d4a560 R15: ff440db1af39d0f8   FS:  00007f04a6ffd700(0000) GS:ff440db1af380000(0000) knlGS:000000e38a3b8000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 000000d5651feff8 CR3: 000000684e038002 CR4: 0000000000773ee0   PKRU: 55555554   Call Trace:    <IRQ>    apic_timer_fn+0x31/0x50 [kvm]    __hrtimer_run_queues+0x100/0x280    hrtimer_interrupt+0x100/0x210    ? ttwu_do_wakeup+0x19/0x160    smp_apic_timer_interrupt+0x6a/0x130    apic_timer_interrupt+0xf/0x20    </IRQ>  Moreover, if the suspend duration of the virtual machine is not long enough to trigger a hard lockup in this scenario, since commit 98c25ead5eda (\"KVM: VMX: Move preemption timer <=> hrtimer dance to common x86\"), KVM will continue using the software timer until the guest reprograms the APIC timer in some way.  Since the periodic timer does not require frequent APIC timer register programming, the guest may continue to use the software timer in ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71116",
                                "url": "https://ubuntu.com/security/CVE-2025-71116",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make decode_pool() more resilient against corrupted osdmaps  If the osdmap is (maliciously) corrupted such that the encoded length of ceph_pg_pool envelope is less than what is expected for a particular encoding version, out-of-bounds reads may ensue because the only bounds check that is there is based on that length value.  This patch adds explicit bounds checks for each field that is decoded or skipped.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71121",
                                "url": "https://ubuntu.com/security/CVE-2025-71121",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  parisc: Do not reprogram affinitiy on ASP chip  The ASP chip is a very old variant of the GSP chip and is used e.g. in HP 730 workstations. When trying to reprogram the affinity it will crash with a HPMC as the relevant registers don't seem to be at the usual location.  Let's avoid the crash by checking the sversion. Also note, that reprogramming isn't necessary either, as the HP730 is a just a single-CPU machine.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71102",
                                "url": "https://ubuntu.com/security/CVE-2025-71102",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scs: fix a wrong parameter in __scs_magic  __scs_magic() needs a 'void *' variable, but a 'struct task_struct *' is given.  'task_scs(tsk)' is the starting address of the task's shadow call stack, and '__scs_magic(task_scs(tsk))' is the end address of the task's shadow call stack.  Here should be '__scs_magic(task_scs(tsk))'.  The user-visible effect of this bug is that when CONFIG_DEBUG_STACK_USAGE is enabled, the shadow call stack usage checking function (scs_check_usage) would scan an incorrect memory range.  This could lead  1. **Inaccurate stack usage reporting**: The function would calculate    wrong usage statistics for the shadow call stack, potentially showing    incorrect value in kmsg.  2. **Potential kernel crash**: If the value of __scs_magic(tsk)is    greater than that of __scs_magic(task_scs(tsk)), the for loop may    access unmapped memory, potentially causing a kernel panic.  However,    this scenario is unlikely because task_struct is allocated via the slab    allocator (which typically returns lower addresses), while the shadow    call stack returned by task_scs(tsk) is allocated via vmalloc(which    typically returns higher addresses).  However, since this is purely a debugging feature (CONFIG_DEBUG_STACK_USAGE), normal production systems should be not unaffected.  The bug only impacts developers and testers who are actively debugging stack usage with this configuration enabled.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68804",
                                "url": "https://ubuntu.com/security/CVE-2025-68804",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/chrome: cros_ec_ishtp: Fix UAF after unbinding driver  After unbinding the driver, another kthread `cros_ec_console_log_work` is still accessing the device, resulting an UAF and crash.  The driver doesn't unregister the EC device in .remove() which should shutdown sub-devices synchronously.  Fix it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68771",
                                "url": "https://ubuntu.com/security/CVE-2025-68771",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ocfs2: fix kernel BUG in ocfs2_find_victim_chain  syzbot reported a kernel BUG in ocfs2_find_victim_chain() because the `cl_next_free_rec` field of the allocation chain list (next free slot in the chain list) is 0, triggring the BUG_ON(!cl->cl_next_free_rec) condition in ocfs2_find_victim_chain() and panicking the kernel.  To fix this, an if condition is introduced in ocfs2_claim_suballoc_bits(), just before calling ocfs2_find_victim_chain(), the code block in it being executed when either of the following conditions is true:  1. `cl_next_free_rec` is equal to 0, indicating that there are no free chains in the allocation chain list 2. `cl_next_free_rec` is greater than `cl_count` (the total number of chains in the allocation chain list)  Either of them being true is indicative of the fact that there are no chains left for usage.  This is addressed using ocfs2_error(), which prints the error log for debugging purposes, rather than panicking the kernel.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68808",
                                "url": "https://ubuntu.com/security/CVE-2025-68808",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: vidtv: initialize local pointers upon transfer of memory ownership  vidtv_channel_si_init() creates a temporary list (program, service, event) and ownership of the memory itself is transferred to the PAT/SDT/EIT tables through vidtv_psi_pat_program_assign(), vidtv_psi_sdt_service_assign(), vidtv_psi_eit_event_assign().  The problem here is that the local pointer where the memory ownership transfer was completed is not initialized to NULL. This causes the vidtv_psi_pmt_create_sec_for_each_pat_entry() function to fail, and in the flow that jumps to free_eit, the memory that was freed by vidtv_psi_*_table_destroy() can be accessed again by vidtv_psi_*_event_destroy() due to the uninitialized local pointer, so it is freed once again.  Therefore, to prevent use-after-free and double-free vulnerability, local pointers must be initialized to NULL when transferring memory ownership.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68769",
                                "url": "https://ubuntu.com/security/CVE-2025-68769",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix return value of f2fs_recover_fsync_data()  With below scripts, it will trigger panic in f2fs:  mkfs.f2fs -f /dev/vdd mount /dev/vdd /mnt/f2fs touch /mnt/f2fs/foo sync echo 111 >> /mnt/f2fs/foo f2fs_io fsync /mnt/f2fs/foo f2fs_io shutdown 2 /mnt/f2fs umount /mnt/f2fs mount -o ro,norecovery /dev/vdd /mnt/f2fs or mount -o ro,disable_roll_forward /dev/vdd /mnt/f2fs  F2FS-fs (vdd): f2fs_recover_fsync_data: recovery fsync data, check_only: 0 F2FS-fs (vdd): Mounted with checkpoint version = 7f5c361f F2FS-fs (vdd): Stopped filesystem due to reason: 0 F2FS-fs (vdd): f2fs_recover_fsync_data: recovery fsync data, check_only: 1 Filesystem f2fs get_tree() didn't set fc->root, returned 1 ------------[ cut here ]------------ kernel BUG at fs/super.c:1761! Oops: invalid opcode: 0000 [#1] SMP PTI CPU: 3 UID: 0 PID: 722 Comm: mount Not tainted 6.18.0-rc2+ #721 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:vfs_get_tree.cold+0x18/0x1a Call Trace:  <TASK>  fc_mount+0x13/0xa0  path_mount+0x34e/0xc50  __x64_sys_mount+0x121/0x150  do_syscall_64+0x84/0x800  entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fa6cc126cfe  The root cause is we missed to handle error number returned from f2fs_recover_fsync_data() when mounting image w/ ro,norecovery or ro,disable_roll_forward mount option, result in returning a positive error number to vfs_get_tree(), fix it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71069",
                                "url": "https://ubuntu.com/security/CVE-2025-71069",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: invalidate dentry cache on failed whiteout creation  F2FS can mount filesystems with corrupted directory depth values that get runtime-clamped to MAX_DIR_HASH_DEPTH. When RENAME_WHITEOUT operations are performed on such directories, f2fs_rename performs directory modifications (updating target entry and deleting source entry) before attempting to add the whiteout entry via f2fs_add_link.  If f2fs_add_link fails due to the corrupted directory structure, the function returns an error to VFS, but the partial directory modifications have already been committed to disk. VFS assumes the entire rename operation failed and does not update the dentry cache, leaving stale mappings.  In the error path, VFS does not call d_move() to update the dentry cache. This results in new_dentry still pointing to the old inode (new_inode) which has already had its i_nlink decremented to zero. The stale cache causes subsequent operations to incorrectly reference the freed inode.  This causes subsequent operations to use cached dentry information that no longer matches the on-disk state. When a second rename targets the same entry, VFS attempts to decrement i_nlink on the stale inode, which may already have i_nlink=0, triggering a WARNING in drop_nlink().  Example sequence: 1. First rename (RENAME_WHITEOUT): file2 → file1    - f2fs updates file1 entry on disk (points to inode 8)    - f2fs deletes file2 entry on disk    - f2fs_add_link(whiteout) fails (corrupted directory)    - Returns error to VFS    - VFS does not call d_move() due to error    - VFS cache still has: file1 → inode 7 (stale!)    - inode 7 has i_nlink=0 (already decremented)  2. Second rename: file3 → file1    - VFS uses stale cache: file1 → inode 7    - Tries to drop_nlink on inode 7 (i_nlink already 0)    - WARNING in drop_nlink()  Fix this by explicitly invalidating old_dentry and new_dentry when f2fs_add_link fails during whiteout creation. This forces VFS to refresh from disk on subsequent operations, ensuring cache consistency even when the rename partially succeeds.  Reproducer: 1. Mount F2FS image with corrupted i_current_depth 2. renameat2(file2, file1, RENAME_WHITEOUT) 3. renameat2(file3, file1, 0) 4. System triggers WARNING in drop_nlink()",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68782",
                                "url": "https://ubuntu.com/security/CVE-2025-68782",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: Reset t_task_cdb pointer in error case  If allocation of cmd->t_task_cdb fails, it remains NULL but is later dereferenced in the 'err' path.  In case of error, reset NULL t_task_cdb value to point at the default fixed-size buffer.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71075",
                                "url": "https://ubuntu.com/security/CVE-2025-71075",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: aic94xx: fix use-after-free in device removal path  The asd_pci_remove() function fails to synchronize with pending tasklets before freeing the asd_ha structure, leading to a potential use-after-free vulnerability.  When a device removal is triggered (via hot-unplug or module unload), race condition can occur.  The fix adds tasklet_kill() before freeing the asd_ha structure, ensuring all scheduled tasklets complete before cleanup proceeds.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68818",
                                "url": "https://ubuntu.com/security/CVE-2025-68818",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: Revert \"scsi: qla2xxx: Perform lockless command completion in abort path\"  This reverts commit 0367076b0817d5c75dfb83001ce7ce5c64d803a9.  The commit being reverted added code to __qla2x00_abort_all_cmds() to call sp->done() without holding a spinlock.  But unlike the older code below it, this new code failed to check sp->cmd_type and just assumed TYPE_SRB, which results in a jump to an invalid pointer in target-mode with TYPE_TGT_CMD:  qla2xxx [0000:65:00.0]-d034:8: qla24xx_do_nack_work create sess success   0000000009f7a79b qla2xxx [0000:65:00.0]-5003:8: ISP System Error - mbx1=1ff5h mbx2=10h   mbx3=0h mbx4=0h mbx5=191h mbx6=0h mbx7=0h. qla2xxx [0000:65:00.0]-d01e:8: -> fwdump no buffer qla2xxx [0000:65:00.0]-f03a:8: qla_target(0): System error async event   0x8002 occurred qla2xxx [0000:65:00.0]-00af:8: Performing ISP error recovery -   ha=0000000058183fda. BUG: kernel NULL pointer dereference, address: 0000000000000000 PF: supervisor instruction fetch in kernel mode PF: error_code(0x0010) - not-present page PGD 0 P4D 0 Oops: 0010 [#1] SMP CPU: 2 PID: 9446 Comm: qla2xxx_8_dpc Tainted: G           O       6.1.133 #1 Hardware name: Supermicro Super Server/X11SPL-F, BIOS 4.2 12/15/2023 RIP: 0010:0x0 Code: Unable to access opcode bytes at 0xffffffffffffffd6. RSP: 0018:ffffc90001f93dc8 EFLAGS: 00010206 RAX: 0000000000000282 RBX: 0000000000000355 RCX: ffff88810d16a000 RDX: ffff88810dbadaa8 RSI: 0000000000080000 RDI: ffff888169dc38c0 RBP: ffff888169dc38c0 R08: 0000000000000001 R09: 0000000000000045 R10: ffffffffa034bdf0 R11: 0000000000000000 R12: ffff88810800bb40 R13: 0000000000001aa8 R14: ffff888100136610 R15: ffff8881070f7400 FS:  0000000000000000(0000) GS:ffff88bf80080000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffffffffd6 CR3: 000000010c8ff006 CR4: 00000000003706e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace:  <TASK>  ? __die+0x4d/0x8b  ? page_fault_oops+0x91/0x180  ? trace_buffer_unlock_commit_regs+0x38/0x1a0  ? exc_page_fault+0x391/0x5e0  ? asm_exc_page_fault+0x22/0x30  __qla2x00_abort_all_cmds+0xcb/0x3e0 [qla2xxx_scst]  qla2x00_abort_all_cmds+0x50/0x70 [qla2xxx_scst]  qla2x00_abort_isp_cleanup+0x3b7/0x4b0 [qla2xxx_scst]  qla2x00_abort_isp+0xfd/0x860 [qla2xxx_scst]  qla2x00_do_dpc+0x581/0xa40 [qla2xxx_scst]  kthread+0xa8/0xd0  </TASK>  Then commit 4475afa2646d (\"scsi: qla2xxx: Complete command early within lock\") added the spinlock back, because not having the lock caused a race and a crash.  But qla2x00_abort_srb() in the switch below already checks for qla2x00_chip_is_down() and handles it the same way, so the code above the switch is now redundant and still buggy in target-mode. Remove it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68797",
                                "url": "https://ubuntu.com/security/CVE-2025-68797",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  char: applicom: fix NULL pointer dereference in ac_ioctl  Discovered by Atuin - Automated Vulnerability Discovery Engine.  In ac_ioctl, the validation of IndexCard and the check for a valid RamIO pointer are skipped when cmd is 6. However, the function unconditionally executes readb(apbs[IndexCard].RamIO + VERS) at the end.  If cmd is 6, IndexCard may reference a board that does not exist (where RamIO is NULL), leading to a NULL pointer dereference.  Fix this by skipping the readb access when cmd is 6, as this command is a global information query and does not target a specific board context.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68819",
                                "url": "https://ubuntu.com/security/CVE-2025-68819",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()  rlen value is a user-controlled value, but dtv5100_i2c_msg() does not check the size of the rlen value. Therefore, if it is set to a value larger than sizeof(st->data), an out-of-bounds vuln occurs for st->data.  Therefore, we need to add proper range checking to prevent this vuln.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68820",
                                "url": "https://ubuntu.com/security/CVE-2025-68820",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: xattr: fix null pointer deref in ext4_raw_inode()  If ext4_get_inode_loc() fails (e.g. if it returns -EFSCORRUPTED), iloc.bh will remain set to NULL. Since ext4_xattr_inode_dec_ref_all() lacks error checking, this will lead to a null pointer dereference in ext4_raw_inode(), called right after ext4_get_inode_loc().  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71147",
                                "url": "https://ubuntu.com/security/CVE-2025-71147",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KEYS: trusted: Fix a memory leak in tpm2_load_cmd  'tpm2_load_cmd' allocates a tempoary blob indirectly via 'tpm2_key_decode' but it is not freed in the failure paths. Address this by wrapping the blob into with a cleanup helper.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71108",
                                "url": "https://ubuntu.com/security/CVE-2025-71108",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: typec: ucsi: Handle incorrect num_connectors capability  The UCSI spec states that the num_connectors field is 7 bits, and the 8th bit is reserved and should be set to zero. Some buggy FW has been known to set this bit, and it can lead to a system not booting. Flag that the FW is not behaving correctly, and auto-fix the value so that the system boots correctly.  Found on Lenovo P1 G8 during Linux enablement program. The FW will be fixed, but seemed worth addressing in case it hit platforms that aren't officially Linux supported.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71114",
                                "url": "https://ubuntu.com/security/CVE-2025-71114",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  via_wdt: fix critical boot hang due to unnamed resource allocation  The VIA watchdog driver uses allocate_resource() to reserve a MMIO region for the watchdog control register. However, the allocated resource was not given a name, which causes the kernel resource tree to contain an entry marked as \"<BAD>\" under /proc/iomem on x86 platforms.  During boot, this unnamed resource can lead to a critical hang because subsequent resource lookups and conflict checks fail to handle the invalid entry properly.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68783",
                                "url": "https://ubuntu.com/security/CVE-2025-68783",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-mixer: us16x08: validate meter packet indices  get_meter_levels_from_urb() parses the 64-byte meter packets sent by the device and fills the per-channel arrays meter_level[], comp_level[] and master_level[] in struct snd_us16x08_meter_store.  Currently the function derives the channel index directly from the meter packet (MUB2(meter_urb, s) - 1) and uses it to index those arrays without validating the range. If the packet contains a negative or out-of-range channel number, the driver may write past the end of these arrays.  Introduce a local channel variable and validate it before updating the arrays. We reject negative indices, limit meter_level[] and comp_level[] to SND_US16X08_MAX_CHANNELS, and guard master_level[] updates with ARRAY_SIZE(master_level).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68776",
                                "url": "https://ubuntu.com/security/CVE-2025-68776",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/hsr: fix NULL pointer dereference in prp_get_untagged_frame()  prp_get_untagged_frame() calls __pskb_copy() to create frame->skb_std but doesn't check if the allocation failed. If __pskb_copy() returns NULL, skb_clone() is called with a NULL pointer, causing a crash:  Oops: general protection fault, probably for non-canonical address 0xdffffc000000000f: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000078-0x000000000000007f] CPU: 0 UID: 0 PID: 5625 Comm: syz.1.18 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:skb_clone+0xd7/0x3a0 net/core/skbuff.c:2041 Code: 03 42 80 3c 20 00 74 08 4c 89 f7 e8 23 29 05 f9 49 83 3e 00 0f 85 a0 01 00 00 e8 94 dd 9d f8 48 8d 6b 7e 49 89 ee 49 c1 ee 03 <43> 0f b6 04 26 84 c0 0f 85 d1 01 00 00 44 0f b6 7d 00 41 83 e7 0c RSP: 0018:ffffc9000d00f200 EFLAGS: 00010207 RAX: ffffffff892235a1 RBX: 0000000000000000 RCX: ffff88803372a480 RDX: 0000000000000000 RSI: 0000000000000820 RDI: 0000000000000000 RBP: 000000000000007e R08: ffffffff8f7d0f77 R09: 1ffffffff1efa1ee R10: dffffc0000000000 R11: fffffbfff1efa1ef R12: dffffc0000000000 R13: 0000000000000820 R14: 000000000000000f R15: ffff88805144cc00 FS:  0000555557f6d500(0000) GS:ffff88808d72f000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000555581d35808 CR3: 000000005040e000 CR4: 0000000000352ef0 Call Trace:  <TASK>  hsr_forward_do net/hsr/hsr_forward.c:-1 [inline]  hsr_forward_skb+0x1013/0x2860 net/hsr/hsr_forward.c:741  hsr_handle_frame+0x6ce/0xa70 net/hsr/hsr_slave.c:84  __netif_receive_skb_core+0x10b9/0x4380 net/core/dev.c:5966  __netif_receive_skb_one_core net/core/dev.c:6077 [inline]  __netif_receive_skb+0x72/0x380 net/core/dev.c:6192  netif_receive_skb_internal net/core/dev.c:6278 [inline]  netif_receive_skb+0x1cb/0x790 net/core/dev.c:6337  tun_rx_batched+0x1b9/0x730 drivers/net/tun.c:1485  tun_get_user+0x2b65/0x3e90 drivers/net/tun.c:1953  tun_chr_write_iter+0x113/0x200 drivers/net/tun.c:1999  new_sync_write fs/read_write.c:593 [inline]  vfs_write+0x5c9/0xb30 fs/read_write.c:686  ksys_write+0x145/0x250 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f0449f8e1ff Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 f9 92 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 4c 93 02 00 48 RSP: 002b:00007ffd7ad94c90 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007f044a1e5fa0 RCX: 00007f0449f8e1ff RDX: 000000000000003e RSI: 0000200000000500 RDI: 00000000000000c8 RBP: 00007ffd7ad94d20 R08: 0000000000000000 R09: 0000000000000000 R10: 000000000000003e R11: 0000000000000293 R12: 0000000000000001 R13: 00007f044a1e5fa0 R14: 00007f044a1e5fa0 R15: 0000000000000003  </TASK>  Add a NULL check immediately after __pskb_copy() to handle allocation failures gracefully.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68777",
                                "url": "https://ubuntu.com/security/CVE-2025-68777",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: ti_am335x_tsc - fix off-by-one error in wire_order validation  The current validation 'wire_order[i] > ARRAY_SIZE(config_pins)' allows wire_order[i] to equal ARRAY_SIZE(config_pins), which causes out-of-bounds access when used as index in 'config_pins[wire_order[i]]'.  Since config_pins has 4 elements (indices 0-3), the valid range for wire_order should be 0-3. Fix the off-by-one error by using >= instead of > in the validation check.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71112",
                                "url": "https://ubuntu.com/security/CVE-2025-71112",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hns3: add VLAN id validation before using  Currently, the VLAN id may be used without validation when receive a VLAN configuration mailbox from VF. The length of vlan_del_fail_bmap is BITS_TO_LONGS(VLAN_N_VID). It may cause out-of-bounds memory access once the VLAN id is bigger than or equal to VLAN_N_VID.  Therefore, VLAN id needs to be checked to ensure it is within the range of VLAN_N_VID.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71064",
                                "url": "https://ubuntu.com/security/CVE-2025-71064",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hns3: using the num_tqps in the vf driver to apply for resources  Currently, hdev->htqp is allocated using hdev->num_tqps, and kinfo->tqp is allocated using kinfo->num_tqps. However, kinfo->num_tqps is set to min(new_tqps, hdev->num_tqps);  Therefore, kinfo->num_tqps may be smaller than hdev->num_tqps, which causes some hdev->htqp[i] to remain uninitialized in hclgevf_knic_setup().  Thus, this patch allocates hdev->htqp and kinfo->tqp using hdev->num_tqps, ensuring that the lengths of hdev->htqp and kinfo->tqp are consistent and that all elements are properly initialized.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68816",
                                "url": "https://ubuntu.com/security/CVE-2025-68816",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5: fw_tracer, Validate format string parameters  Add validation for format string parameters in the firmware tracer to prevent potential security vulnerabilities and crashes from malformed format strings received from firmware.  The firmware tracer receives format strings from the device firmware and uses them to format trace messages. Without proper validation, bad firmware could provide format strings with invalid format specifiers (e.g., %s, %p, %n) that could lead to crashes, or other undefined behavior.  Add mlx5_tracer_validate_params() to validate that all format specifiers in trace strings are limited to safe integer/hex formats (%x, %d, %i, %u, %llx, %lx, etc.). Reject strings containing other format types that could be used to access arbitrary memory or cause crashes. Invalid format strings are added to the trace output for visibility with \"BAD_FORMAT: \" prefix.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68795",
                                "url": "https://ubuntu.com/security/CVE-2025-68795",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ethtool: Avoid overflowing userspace buffer on stats query  The ethtool -S command operates across three ioctl calls: ETHTOOL_GSSET_INFO for the size, ETHTOOL_GSTRINGS for the names, and ETHTOOL_GSTATS for the values.  If the number of stats changes between these calls (e.g., due to device reconfiguration), userspace's buffer allocation will be incorrect, potentially leading to buffer overflow.  Drivers are generally expected to maintain stable stat counts, but some drivers (e.g., mlx5, bnx2x, bna, ksz884x) use dynamic counters, making this scenario possible.  Some drivers try to handle this internally: - bnad_get_ethtool_stats() returns early in case stats.n_stats is not   equal to the driver's stats count. - micrel/ksz884x also makes sure not to write anything beyond   stats.n_stats and overflow the buffer.  However, both use stats.n_stats which is already assigned with the value returned from get_sset_count(), hence won't solve the issue described here.  Change ethtool_get_strings(), ethtool_get_stats(), ethtool_get_phy_stats() to not return anything in case of a mismatch between userspace's size and get_sset_size(), to prevent buffer overflow. The returned n_stats value will be equal to zero, to reflect that nothing has been returned.  This could result in one of two cases when using upstream ethtool, depending on when the size change is detected: 1. When detected in ethtool_get_strings():     # ethtool -S eth2     no stats available  2. When detected in get stats, all stats will be reported as zero.  Both cases are presumably transient, and a subsequent ethtool call should succeed.  Other than the overflow avoidance, these two cases are very evident (no output/cleared stats), which is arguably better than presenting incorrect/shifted stats. I also considered returning an error instead of a \"silent\" response, but that seems more destructive towards userspace apps.  Notes: - This patch does not claim to fix the inherent race, it only makes sure   that we do not overflow the userspace buffer, and makes for a more   predictable behavior.  - RTNL lock is held during each ioctl, the race window exists between   the separate ioctl calls when the lock is released.  - Userspace ethtool always fills stats.n_stats, but it is likely that   these stats ioctls are implemented in other userspace applications   which might not fill it. The added code checks that it's not zero,   to prevent any regressions.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68815",
                                "url": "https://ubuntu.com/security/CVE-2025-68815",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: ets: Remove drr class from the active list if it changes to strict  Whenever a user issues an ets qdisc change command, transforming a drr class into a strict one, the ets code isn't checking whether that class was in the active list and removing it. This means that, if a user changes a strict class (which was in the active list) back to a drr one, that class will be added twice to the active list [1].  Doing so with the following commands:  tc qdisc add dev lo root handle 1: ets bands 2 strict 1 tc qdisc add dev lo parent 1:2 handle 20: \\     tbf rate 8bit burst 100b latency 1s tc filter add dev lo parent 1: basic classid 1:2 ping -c1 -W0.01 -s 56 127.0.0.1 tc qdisc change dev lo root handle 1: ets bands 2 strict 2 tc qdisc change dev lo root handle 1: ets bands 2 strict 1 ping -c1 -W0.01 -s 56 127.0.0.1  Will trigger the following splat with list debug turned on:  [   59.279014][  T365] ------------[ cut here ]------------ [   59.279452][  T365] list_add double add: new=ffff88801d60e350, prev=ffff88801d60e350, next=ffff88801d60e2c0. [   59.280153][  T365] WARNING: CPU: 3 PID: 365 at lib/list_debug.c:35 __list_add_valid_or_report+0x17f/0x220 [   59.280860][  T365] Modules linked in: [   59.281165][  T365] CPU: 3 UID: 0 PID: 365 Comm: tc Not tainted 6.18.0-rc7-00105-g7e9f13163c13-dirty #239 PREEMPT(voluntary) [   59.281977][  T365] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [   59.282391][  T365] RIP: 0010:__list_add_valid_or_report+0x17f/0x220 [   59.282842][  T365] Code: 89 c6 e8 d4 b7 0d ff 90 0f 0b 90 90 31 c0 e9 31 ff ff ff 90 48 c7 c7 e0 a0 22 9f 48 89 f2 48 89 c1 4c 89 c6 e8 b2 b7 0d ff 90 <0f> 0b 90 90 31 c0 e9 0f ff ff ff 48 89 f7 48 89 44 24 10 4c 89 44 ... [   59.288812][  T365] Call Trace: [   59.289056][  T365]  <TASK> [   59.289224][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.289546][  T365]  ets_qdisc_change+0xd2b/0x1e80 [   59.289891][  T365]  ? __lock_acquire+0x7e7/0x1be0 [   59.290223][  T365]  ? __pfx_ets_qdisc_change+0x10/0x10 [   59.290546][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.290898][  T365]  ? __mutex_trylock_common+0xda/0x240 [   59.291228][  T365]  ? __pfx___mutex_trylock_common+0x10/0x10 [   59.291655][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.291993][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.292313][  T365]  ? trace_contention_end+0xc8/0x110 [   59.292656][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.293022][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.293351][  T365]  tc_modify_qdisc+0x63a/0x1cf0  Fix this by always checking and removing an ets class from the active list when changing it to strict.  [1] https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/net/sched/sch_ets.c?id=ce052b9402e461a9aded599f5b47e76bc727f7de#n663",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68799",
                                "url": "https://ubuntu.com/security/CVE-2025-68799",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  caif: fix integer underflow in cffrml_receive()  The cffrml_receive() function extracts a length field from the packet header and, when FCS is disabled, subtracts 2 from this length without validating that len >= 2.  If an attacker sends a malicious packet with a length field of 0 or 1 to an interface with FCS disabled, the subtraction causes an integer underflow.  This can lead to memory exhaustion and kernel instability, potential information disclosure if padding contains uninitialized kernel memory.  Fix this by validating that len >= 2 before performing the subtraction.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68813",
                                "url": "https://ubuntu.com/security/CVE-2025-68813",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: fix ipv4 null-ptr-deref in route error path  The IPv4 code path in __ip_vs_get_out_rt() calls dst_link_failure() without ensuring skb->dev is set, leading to a NULL pointer dereference in fib_compute_spec_dst() when ipv4_link_failure() attempts to send ICMP destination unreachable messages.  The issue emerged after commit ed0de45a1008 (\"ipv4: recompile ip options in ipv4_link_failure\") started calling __ip_options_compile() from ipv4_link_failure(). This code path eventually calls fib_compute_spec_dst() which dereferences skb->dev. An attempt was made to fix the NULL skb->dev dereference in commit 0113d9c9d1cc (\"ipv4: fix null-deref in ipv4_link_failure\"), but it only addressed the immediate dev_net(skb->dev) dereference by using a fallback device. The fix was incomplete because fib_compute_spec_dst() later in the call chain still accesses skb->dev directly, which remains NULL when IPVS calls dst_link_failure().  The crash occurs when: 1. IPVS processes a packet in NAT mode with a misconfigured destination 2. Route lookup fails in __ip_vs_get_out_rt() before establishing a route 3. The error path calls dst_link_failure(skb) with skb->dev == NULL 4. ipv4_link_failure() → ipv4_send_dest_unreach() →    __ip_options_compile() → fib_compute_spec_dst() 5. fib_compute_spec_dst() dereferences NULL skb->dev  Apply the same fix used for IPv6 in commit 326bf17ea5d4 (\"ipvs: fix ipv6 route unreach panic\"): set skb->dev from skb_dst(skb)->dev before calling dst_link_failure().  KASAN: null-ptr-deref in range [0x0000000000000328-0x000000000000032f] CPU: 1 PID: 12732 Comm: syz.1.3469 Not tainted 6.6.114 #2 RIP: 0010:__in_dev_get_rcu include/linux/inetdevice.h:233 RIP: 0010:fib_compute_spec_dst+0x17a/0x9f0 net/ipv4/fib_frontend.c:285 Call Trace:   <TASK>   spec_dst_fill net/ipv4/ip_options.c:232   spec_dst_fill net/ipv4/ip_options.c:229   __ip_options_compile+0x13a1/0x17d0 net/ipv4/ip_options.c:330   ipv4_send_dest_unreach net/ipv4/route.c:1252   ipv4_link_failure+0x702/0xb80 net/ipv4/route.c:1265   dst_link_failure include/net/dst.h:437   __ip_vs_get_out_rt+0x15fd/0x19e0 net/netfilter/ipvs/ip_vs_xmit.c:412   ip_vs_nat_xmit+0x1d8/0xc80 net/netfilter/ipvs/ip_vs_xmit.c:764",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68785",
                                "url": "https://ubuntu.com/security/CVE-2025-68785",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: openvswitch: fix middle attribute validation in push_nsh() action  The push_nsh() action structure looks like this:   OVS_ACTION_ATTR_PUSH_NSH(OVS_KEY_ATTR_NSH(OVS_NSH_KEY_ATTR_BASE,...))  The outermost OVS_ACTION_ATTR_PUSH_NSH attribute is OK'ed by the nla_for_each_nested() inside __ovs_nla_copy_actions().  The innermost OVS_NSH_KEY_ATTR_BASE/MD1/MD2 are OK'ed by the nla_for_each_nested() inside nsh_key_put_from_nlattr().  But nothing checks if the attribute in the middle is OK.  We don't even check that this attribute is the OVS_KEY_ATTR_NSH.  We just do a double unwrap with a pair of nla_data() calls - first time directly while calling validate_push_nsh() and the second time as part of the nla_for_each_nested() macro, which isn't safe, potentially causing invalid memory access if the size of this attribute is incorrect.  The failure may not be noticed during validation due to larger netlink buffer, but cause trouble later during action execution where the buffer is allocated exactly to the size:   BUG: KASAN: slab-out-of-bounds in nsh_hdr_from_nlattr+0x1dd/0x6a0 [openvswitch]  Read of size 184 at addr ffff88816459a634 by task a.out/22624   CPU: 8 UID: 0 PID: 22624 6.18.0-rc7+ #115 PREEMPT(voluntary)  Call Trace:   <TASK>   dump_stack_lvl+0x51/0x70   print_address_description.constprop.0+0x2c/0x390   kasan_report+0xdd/0x110   kasan_check_range+0x35/0x1b0   __asan_memcpy+0x20/0x60   nsh_hdr_from_nlattr+0x1dd/0x6a0 [openvswitch]   push_nsh+0x82/0x120 [openvswitch]   do_execute_actions+0x1405/0x2840 [openvswitch]   ovs_execute_actions+0xd5/0x3b0 [openvswitch]   ovs_packet_cmd_execute+0x949/0xdb0 [openvswitch]   genl_family_rcv_msg_doit+0x1d6/0x2b0   genl_family_rcv_msg+0x336/0x580   genl_rcv_msg+0x9f/0x130   netlink_rcv_skb+0x11f/0x370   genl_rcv+0x24/0x40   netlink_unicast+0x73e/0xaa0   netlink_sendmsg+0x744/0xbf0   __sys_sendto+0x3d6/0x450   do_syscall_64+0x79/0x2c0   entry_SYSCALL_64_after_hwframe+0x76/0x7e   </TASK>  Let's add some checks that the attribute is properly sized and it's the only one attribute inside the action.  Technically, there is no real reason for OVS_KEY_ATTR_NSH to be there, as we know that we're pushing an NSH header already, it just creates extra nesting, but that's how uAPI works today.  So, keeping as it is.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68800",
                                "url": "https://ubuntu.com/security/CVE-2025-68800",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mlxsw: spectrum_mr: Fix use-after-free when updating multicast route stats  Cited commit added a dedicated mutex (instead of RTNL) to protect the multicast route list, so that it will not change while the driver periodically traverses it in order to update the kernel about multicast route stats that were queried from the device.  One instance of list entry deletion (during route replace) was missed and it can result in a use-after-free [1].  Fix by acquiring the mutex before deleting the entry from the list and releasing it afterwards.  [1] BUG: KASAN: slab-use-after-free in mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum] Read of size 8 at addr ffff8881523c2fa8 by task kworker/2:5/22043  CPU: 2 UID: 0 PID: 22043 Comm: kworker/2:5 Not tainted 6.18.0-rc1-custom-g1a3d6d7cd014 #1 PREEMPT(full) Hardware name: Mellanox Technologies Ltd. MSN2010/SA002610, BIOS 5.6.5 08/24/2017 Workqueue: mlxsw_core mlxsw_sp_mr_stats_update [mlxsw_spectrum] Call Trace:  <TASK>  dump_stack_lvl+0xba/0x110  print_report+0x174/0x4f5  kasan_report+0xdf/0x110  mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30  </TASK>  Allocated by task 29933:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0x8f/0xa0  mlxsw_sp_mr_route_add+0xd8/0x4770 [mlxsw_spectrum]  mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30  Freed by task 29933:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_save_free_info+0x3b/0x70  __kasan_slab_free+0x43/0x70  kfree+0x14e/0x700  mlxsw_sp_mr_route_add+0x2dea/0x4770 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:444 [mlxsw_spectrum]  mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68801",
                                "url": "https://ubuntu.com/security/CVE-2025-68801",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mlxsw: spectrum_router: Fix neighbour use-after-free  We sometimes observe use-after-free when dereferencing a neighbour [1]. The problem seems to be that the driver stores a pointer to the neighbour, but without holding a reference on it. A reference is only taken when the neighbour is used by a nexthop.  Fix by simplifying the reference counting scheme. Always take a reference when storing a neighbour pointer in a neighbour entry. Avoid taking a referencing when the neighbour is used by a nexthop as the neighbour entry associated with the nexthop already holds a reference.  Tested by running the test that uncovered the problem over 300 times. Without this patch the problem was reproduced after a handful of iterations.  [1] BUG: KASAN: slab-use-after-free in mlxsw_sp_neigh_entry_update+0x2d4/0x310 Read of size 8 at addr ffff88817f8e3420 by task ip/3929  CPU: 3 UID: 0 PID: 3929 Comm: ip Not tainted 6.18.0-rc4-virtme-g36b21a067510 #3 PREEMPT(full) Hardware name: Nvidia SN5600/VMOD0013, BIOS 5.13 05/31/2023 Call Trace:  <TASK>  dump_stack_lvl+0x6f/0xa0  print_address_description.constprop.0+0x6e/0x300  print_report+0xfc/0x1fb  kasan_report+0xe4/0x110  mlxsw_sp_neigh_entry_update+0x2d4/0x310  mlxsw_sp_router_rif_gone_sync+0x35f/0x510  mlxsw_sp_rif_destroy+0x1ea/0x730  mlxsw_sp_inetaddr_port_vlan_event+0xa1/0x1b0  __mlxsw_sp_inetaddr_lag_event+0xcc/0x130  __mlxsw_sp_inetaddr_event+0xf5/0x3c0  mlxsw_sp_router_netdevice_event+0x1015/0x1580  notifier_call_chain+0xcc/0x150  call_netdevice_notifiers_info+0x7e/0x100  __netdev_upper_dev_unlink+0x10b/0x210  netdev_upper_dev_unlink+0x79/0xa0  vrf_del_slave+0x18/0x50  do_set_master+0x146/0x7d0  do_setlink.isra.0+0x9a0/0x2880  rtnl_newlink+0x637/0xb20  rtnetlink_rcv_msg+0x6fe/0xb90  netlink_rcv_skb+0x123/0x380  netlink_unicast+0x4a3/0x770  netlink_sendmsg+0x75b/0xc90  __sock_sendmsg+0xbe/0x160  ____sys_sendmsg+0x5b2/0x7d0  ___sys_sendmsg+0xfd/0x180  __sys_sendmsg+0x124/0x1c0  do_syscall_64+0xbb/0xfd0  entry_SYSCALL_64_after_hwframe+0x4b/0x53 [...]  Allocated by task 109:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0x7b/0x90  __kmalloc_noprof+0x2c1/0x790  neigh_alloc+0x6af/0x8f0  ___neigh_create+0x63/0xe90  mlxsw_sp_nexthop_neigh_init+0x430/0x7e0  mlxsw_sp_nexthop_type_init+0x212/0x960  mlxsw_sp_nexthop6_group_info_init.constprop.0+0x81f/0x1280  mlxsw_sp_nexthop6_group_get+0x392/0x6a0  mlxsw_sp_fib6_entry_create+0x46a/0xfd0  mlxsw_sp_router_fib6_replace+0x1ed/0x5f0  mlxsw_sp_router_fib6_event_work+0x10a/0x2a0  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20  Freed by task 154:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_save_free_info+0x3b/0x60  __kasan_slab_free+0x43/0x70  kmem_cache_free_bulk.part.0+0x1eb/0x5e0  kvfree_rcu_bulk+0x1f2/0x260  kfree_rcu_work+0x130/0x1b0  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20  Last potentially related work creation:  kasan_save_stack+0x30/0x50  kasan_record_aux_stack+0x8c/0xa0  kvfree_call_rcu+0x93/0x5b0  mlxsw_sp_router_neigh_event_work+0x67d/0x860  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71066",
                                "url": "https://ubuntu.com/security/CVE-2025-71066",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: ets: Always remove class from active list before deleting in ets_qdisc_change  zdi-disclosures@trendmicro.com says:  The vulnerability is a race condition between `ets_qdisc_dequeue` and `ets_qdisc_change`.  It leads to UAF on `struct Qdisc` object. Attacker requires the capability to create new user and network namespace in order to trigger the bug. See my additional commentary at the end of the analysis.  Analysis:  static int ets_qdisc_change(struct Qdisc *sch, struct nlattr *opt,                           struct netlink_ext_ack *extack) { ...        // (1) this lock is preventing .change handler (`ets_qdisc_change`)       //to race with .dequeue handler (`ets_qdisc_dequeue`)       sch_tree_lock(sch);        for (i = nbands; i < oldbands; i++) {               if (i >= q->nstrict && q->classes[i].qdisc->q.qlen)                       list_del_init(&q->classes[i].alist);               qdisc_purge_queue(q->classes[i].qdisc);       }        WRITE_ONCE(q->nbands, nbands);       for (i = nstrict; i < q->nstrict; i++) {               if (q->classes[i].qdisc->q.qlen) { \t\t      // (2) the class is added to the q->active                       list_add_tail(&q->classes[i].alist, &q->active);                       q->classes[i].deficit = quanta[i];               }       }       WRITE_ONCE(q->nstrict, nstrict);       memcpy(q->prio2band, priomap, sizeof(priomap));        for (i = 0; i < q->nbands; i++)               WRITE_ONCE(q->classes[i].quantum, quanta[i]);        for (i = oldbands; i < q->nbands; i++) {               q->classes[i].qdisc = queues[i];               if (q->classes[i].qdisc != &noop_qdisc)                       qdisc_hash_add(q->classes[i].qdisc, true);       }        // (3) the qdisc is unlocked, now dequeue can be called in parallel       // to the rest of .change handler       sch_tree_unlock(sch);        ets_offload_change(sch);       for (i = q->nbands; i < oldbands; i++) { \t      // (4) we're reducing the refcount for our class's qdisc and \t      //  freeing it               qdisc_put(q->classes[i].qdisc); \t      // (5) If we call .dequeue between (4) and (5), we will have \t      // a strong UAF and we can control RIP               q->classes[i].qdisc = NULL;               WRITE_ONCE(q->classes[i].quantum, 0);               q->classes[i].deficit = 0;               gnet_stats_basic_sync_init(&q->classes[i].bstats);               memset(&q->classes[i].qstats, 0, sizeof(q->classes[i].qstats));       }       return 0; }  Comment: This happens because some of the classes have their qdiscs assigned to NULL, but remain in the active list. This commit fixes this issue by always removing the class from the active list before deleting and freeing its associated qdisc  Reproducer Steps (trimmed version of what was sent by zdi-disclosures@trendmicro.com)  ``` DEV=\"${DEV:-lo}\" ROOT_HANDLE=\"${ROOT_HANDLE:-1:}\" BAND2_HANDLE=\"${BAND2_HANDLE:-20:}\"   # child under 1:2 PING_BYTES=\"${PING_BYTES:-48}\" PING_COUNT=\"${PING_COUNT:-200000}\" PING_DST=\"${PING_DST:-127.0.0.1}\"  SLOW_TBF_RATE=\"${SLOW_TBF_RATE:-8bit}\" SLOW_TBF_BURST=\"${SLOW_TBF_BURST:-100b}\" SLOW_TBF_LAT=\"${SLOW_TBF_LAT:-1s}\"  cleanup() {   tc qdisc del dev \"$DEV\" root 2>/dev/null } trap cleanup EXIT  ip link set \"$DEV\" up  tc qdisc del dev \"$DEV\" root 2>/dev/null || true  tc qdisc add dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 2  tc qdisc add dev \"$DEV\" parent 1:2 handle \"$BAND2_HANDLE\" \\   tbf rate \"$SLOW_TBF_RATE\" burst \"$SLOW_TBF_BURST\" latency \"$SLOW_TBF_LAT\"  tc filter add dev \"$DEV\" parent 1: protocol all prio 1 u32 match u32 0 0 flowid 1:2 tc -s qdisc ls dev $DEV  ping -I \"$DEV\" -f -c \"$PING_COUNT\" -s \"$PING_BYTES\" -W 0.001 \"$PING_DST\" \\   >/dev/null 2>&1 & tc qdisc change dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 0 tc qdisc change dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 2 tc -s qdisc ls dev $DEV tc qdisc del dev \"$DEV\" parent ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68787",
                                "url": "https://ubuntu.com/security/CVE-2025-68787",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netrom: Fix memory leak in nr_sendmsg()  syzbot reported a memory leak [1].  When function sock_alloc_send_skb() return NULL in nr_output(), the original skb is not freed, which was allocated in nr_sendmsg(). Fix this by freeing it before return.  [1] BUG: memory leak unreferenced object 0xffff888129f35500 (size 240):   comm \"syz.0.17\", pid 6119, jiffies 4294944652   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     00 00 00 00 00 00 00 00 00 10 52 28 81 88 ff ff  ..........R(....   backtrace (crc 1456a3e4):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4983 [inline]     slab_alloc_node mm/slub.c:5288 [inline]     kmem_cache_alloc_node_noprof+0x36f/0x5e0 mm/slub.c:5340     __alloc_skb+0x203/0x240 net/core/skbuff.c:660     alloc_skb include/linux/skbuff.h:1383 [inline]     alloc_skb_with_frags+0x69/0x3f0 net/core/skbuff.c:6671     sock_alloc_send_pskb+0x379/0x3e0 net/core/sock.c:2965     sock_alloc_send_skb include/net/sock.h:1859 [inline]     nr_sendmsg+0x287/0x450 net/netrom/af_netrom.c:1105     sock_sendmsg_nosec net/socket.c:727 [inline]     __sock_sendmsg net/socket.c:742 [inline]     sock_write_iter+0x293/0x2a0 net/socket.c:1195     new_sync_write fs/read_write.c:593 [inline]     vfs_write+0x45d/0x710 fs/read_write.c:686     ksys_write+0x143/0x170 fs/read_write.c:738     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]     do_syscall_64+0xa4/0xfa0 arch/x86/entry/syscall_64.c:94     entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68767",
                                "url": "https://ubuntu.com/security/CVE-2025-68767",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hfsplus: Verify inode mode when loading from disk  syzbot is reporting that S_IFMT bits of inode->i_mode can become bogus when the S_IFMT bits of the 16bits \"mode\" field loaded from disk are corrupted.  According to [1], the permissions field was treated as reserved in Mac OS 8 and 9. According to [2], the reserved field was explicitly initialized with 0, and that field must remain 0 as long as reserved. Therefore, when the \"mode\" field is not 0 (i.e. no longer reserved), the file must be S_IFDIR if dir == 1, and the file must be one of S_IFREG/S_IFLNK/S_IFCHR/ S_IFBLK/S_IFIFO/S_IFSOCK if dir == 0.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68774",
                                "url": "https://ubuntu.com/security/CVE-2025-68774",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create  When sync() and link() are called concurrently, both threads may enter hfs_bnode_find() without finding the node in the hash table and proceed to create it.  Thread A:   hfsplus_write_inode()     -> hfsplus_write_system_inode()       -> hfs_btree_write()         -> hfs_bnode_find(tree, 0)           -> __hfs_bnode_create(tree, 0)  Thread B:   hfsplus_create_cat()     -> hfs_brec_insert()       -> hfs_bnode_split()         -> hfs_bmap_alloc()           -> hfs_bnode_find(tree, 0)             -> __hfs_bnode_create(tree, 0)  In this case, thread A creates the bnode, sets refcnt=1, and hashes it. Thread B also tries to create the same bnode, notices it has already been inserted, drops its own instance, and uses the hashed one without getting the node.  ```  \tnode2 = hfs_bnode_findhash(tree, cnid); \tif (!node2) {                                 <- Thread A \t\thash = hfs_bnode_hash(cnid); \t\tnode->next_hash = tree->node_hash[hash]; \t\ttree->node_hash[hash] = node; \t\ttree->node_hash_cnt++; \t} else {                                      <- Thread B \t\tspin_unlock(&tree->hash_lock); \t\tkfree(node); \t\twait_event(node2->lock_wq, \t\t\t!test_bit(HFS_BNODE_NEW, &node2->flags)); \t\treturn node2; \t} ```  However, hfs_bnode_find() requires each call to take a reference. Here both threads end up setting refcnt=1. When they later put the node, this triggers:  BUG_ON(!atomic_read(&node->refcnt))  In this scenario, Thread B in fact finds the node in the hash table rather than creating a new one, and thus must take a reference.  Fix this by calling hfs_bnode_get() when reusing a bnode newly created by another thread to ensure the refcount is updated correctly.  A similar bug was fixed in HFS long ago in commit a9dc087fd3c4 (\"fix missing hfs_bnode_get() in __hfs_bnode_create\") but the same issue remained in HFS+ until now.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71118",
                                "url": "https://ubuntu.com/security/CVE-2025-71118",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ACPICA: Avoid walking the Namespace if start_node is NULL  Although commit 0c9992315e73 (\"ACPICA: Avoid walking the ACPI Namespace if it is not there\") fixed the situation when both start_node and acpi_gbl_root_node are NULL, the Linux kernel mainline now still crashed on Honor Magicbook 14 Pro [1].  That happens due to the access to the member of parent_node in acpi_ns_get_next_node().  The NULL pointer dereference will always happen, no matter whether or not the start_node is equal to ACPI_ROOT_OBJECT, so move the check of start_node being NULL out of the if block.  Unfortunately, all the attempts to contact Honor have failed, they refused to provide any technical support for Linux.  The bad DSDT table's dump could be found on GitHub [2].  DMI: HONOR FMB-P/FMB-P-PCB, BIOS 1.13 05/08/2025  [ rjw: Subject adjustment, changelog edits ]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68780",
                                "url": "https://ubuntu.com/security/CVE-2025-68780",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sched/deadline: only set free_cpus for online runqueues  Commit 16b269436b72 (\"sched/deadline: Modify cpudl::free_cpus to reflect rd->online\") introduced the cpudl_set/clear_freecpu functions to allow the cpu_dl::free_cpus mask to be manipulated by the deadline scheduler class rq_on/offline callbacks so the mask would also reflect this state.  Commit 9659e1eeee28 (\"sched/deadline: Remove cpu_active_mask from cpudl_find()\") removed the check of the cpu_active_mask to save some processing on the premise that the cpudl::free_cpus mask already reflected the runqueue online state.  Unfortunately, there are cases where it is possible for the cpudl_clear function to set the free_cpus bit for a CPU when the deadline runqueue is offline. When this occurs while a CPU is connected to the default root domain the flag may retain the bad state after the CPU has been unplugged. Later, a different CPU that is transitioning through the default root domain may push a deadline task to the powered down CPU when cpudl_find sees its free_cpus bit is set. If this happens the task will not have the opportunity to run.  One example is outlined here: https://lore.kernel.org/lkml/20250110233010.2339521-1-opendmb@gmail.com  Another occurs when the last deadline task is migrated from a CPU that has an offlined runqueue. The dequeue_task member of the deadline scheduler class will eventually call cpudl_clear and set the free_cpus bit for the CPU.  This commit modifies the cpudl_clear function to be aware of the online state of the deadline runqueue so that the free_cpus mask can be updated appropriately.  It is no longer necessary to manage the mask outside of the cpudl_set/clear functions so the cpudl_set/clear_freecpu functions are removed. In addition, since the free_cpus mask is now only updated under the cpudl lock the code was changed to use the non-atomic __cpumask functions.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68346",
                                "url": "https://ubuntu.com/security/CVE-2025-68346",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: dice: fix buffer overflow in detect_stream_formats()  The function detect_stream_formats() reads the stream_count value directly from a FireWire device without validating it. This can lead to out-of-bounds writes when a malicious device provides a stream_count value greater than MAX_STREAMS.  Fix by applying the same validation to both TX and RX stream counts in detect_stream_formats().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68764",
                                "url": "https://ubuntu.com/security/CVE-2025-68764",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFS: Automounted filesystems should inherit ro,noexec,nodev,sync flags  When a filesystem is being automounted, it needs to preserve the user-set superblock mount options, such as the \"ro\" flag.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68349",
                                "url": "https://ubuntu.com/security/CVE-2025-68349",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSv4/pNFS: Clear NFS_INO_LAYOUTCOMMIT in pnfs_mark_layout_stateid_invalid  Fixes a crash when layout is null during this call stack:  write_inode     -> nfs4_write_inode         -> pnfs_layoutcommit_inode  pnfs_set_layoutcommit relies on the lseg refcount to keep the layout around. Need to clear NFS_INO_LAYOUTCOMMIT otherwise we might attempt to reference a null layout.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68325",
                                "url": "https://ubuntu.com/security/CVE-2025-68325",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop  In cake_drop(), qdisc_tree_reduce_backlog() is used to update the qlen and backlog of the qdisc hierarchy. Its caller, cake_enqueue(), assumes that the parent qdisc will enqueue the current packet. However, this assumption breaks when cake_enqueue() returns NET_XMIT_CN: the parent qdisc stops enqueuing current packet, leaving the tree qlen/backlog accounting inconsistent. This mismatch can lead to a NULL dereference (e.g., when the parent Qdisc is qfq_qdisc).  This patch computes the qlen/backlog delta in a more robust way by observing the difference before and after the series of cake_drop() calls, and then compensates the qdisc tree accounting if cake_enqueue() returns NET_XMIT_CN.  To ensure correct compensation when ACK thinning is enabled, a new variable is introduced to keep qlen unchanged.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-18 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68354",
                                "url": "https://ubuntu.com/security/CVE-2025-68354",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regulator: core: Protect regulator_supply_alias_list with regulator_list_mutex  regulator_supply_alias_list was accessed without any locking in regulator_supply_alias(), regulator_register_supply_alias(), and regulator_unregister_supply_alias(). Concurrent registration, unregistration and lookups can race, leading to:  1 use-after-free if an alias entry is removed while being read, 2 duplicate entries when two threads register the same alias, 3 inconsistent alias mappings observed by consumers.  Protect all traversals, insertions and deletions on regulator_supply_alias_list with the existing regulator_list_mutex.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68758",
                                "url": "https://ubuntu.com/security/CVE-2025-68758",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  backlight: led-bl: Add devlink to supplier LEDs  LED Backlight is a consumer of one or multiple LED class devices, but devlink is currently unable to create correct supplier-producer links when the supplier is a class device. It creates instead a link where the supplier is the parent of the expected device.  One consequence is that removal order is not correctly enforced.  Issues happen for example with the following sections in a device tree overlay:      // An LED driver chip     pca9632@62 {         compatible = \"nxp,pca9632\";         reg = <0x62>;  \t// ...          addon_led_pwm: led-pwm@3 {             reg = <3>;             label = \"addon:led:pwm\";         };     };      backlight-addon {         compatible = \"led-backlight\";         leds = <&addon_led_pwm>;         brightness-levels = <255>;         default-brightness-level = <255>;     };  In this example, the devlink should be created between the backlight-addon (consumer) and the pca9632@62 (supplier). Instead it is created between the backlight-addon (consumer) and the parent of the pca9632@62, which is typically the I2C bus adapter.  On removal of the above overlay, the LED driver can be removed before the backlight device, resulting in:      Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010     ...     Call trace:      led_put+0xe0/0x140      devm_led_release+0x6c/0x98  Another way to reproduce the bug without any device tree overlays is unbinding the LED class device (pca9632@62) before unbinding the consumer (backlight-addon):    echo 11-0062 >/sys/bus/i2c/drivers/leds-pca963x/unbind   echo ...backlight-dock >/sys/bus/platform/drivers/led-backlight/unbind  Fix by adding a devlink between the consuming led-backlight device and the supplying LED device, as other drivers and subsystems do as well.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68765",
                                "url": "https://ubuntu.com/security/CVE-2025-68765",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()  In mt7615_mcu_wtbl_sta_add(), an skb sskb is allocated. If the subsequent call to mt76_connac_mcu_alloc_wtbl_req() fails, the function returns an error without freeing sskb, leading to a memory leak.  Fix this by calling dev_kfree_skb() on sskb in the error handling path to ensure it is properly released.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68740",
                                "url": "https://ubuntu.com/security/CVE-2025-68740",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ima: Handle error code returned by ima_filter_rule_match()  In ima_match_rules(), if ima_filter_rule_match() returns -ENOENT due to the rule being NULL, the function incorrectly skips the 'if (!rc)' check and sets 'result = true'. The LSM rule is considered a match, causing extra files to be measured by IMA.  This issue can be reproduced in the following scenario: After unloading the SELinux policy module via 'semodule -d', if an IMA measurement is triggered before ima_lsm_rules is updated, in ima_match_rules(), the first call to ima_filter_rule_match() returns -ESTALE. This causes the code to enter the 'if (rc == -ESTALE && !rule_reinitialized)' block, perform ima_lsm_copy_rule() and retry. In ima_lsm_copy_rule(), since the SELinux module has been removed, the rule becomes NULL, and the second call to ima_filter_rule_match() returns -ENOENT. This bypasses the 'if (!rc)' check and results in a false match.  Call trace:   selinux_audit_rule_match+0x310/0x3b8   security_audit_rule_match+0x60/0xa0   ima_match_rules+0x2e4/0x4a0   ima_match_policy+0x9c/0x1e8   ima_get_action+0x48/0x60   process_measurement+0xf8/0xa98   ima_bprm_check+0x98/0xd8   security_bprm_check+0x5c/0x78   search_binary_handler+0x6c/0x318   exec_binprm+0x58/0x1b8   bprm_execve+0xb8/0x130   do_execveat_common.isra.0+0x1a8/0x258   __arm64_sys_execve+0x48/0x68   invoke_syscall+0x50/0x128   el0_svc_common.constprop.0+0xc8/0xf0   do_el0_svc+0x24/0x38   el0_svc+0x44/0x200   el0t_64_sync_handler+0x100/0x130   el0t_64_sync+0x3c8/0x3d0  Fix this by changing 'if (!rc)' to 'if (rc <= 0)' to ensure that error codes like -ENOENT do not bypass the check and accidentally result in a successful match.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68362",
                                "url": "https://ubuntu.com/security/CVE-2025-68362",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rtl818x: rtl8187: Fix potential buffer underflow in rtl8187_rx_cb()  The rtl8187_rx_cb() calculates the rx descriptor header address by subtracting its size from the skb tail pointer. However, it does not validate if the received packet (skb->len from urb->actual_length) is large enough to contain this header.  If a truncated packet is received, this will lead to a buffer underflow, reading memory before the start of the skb data area, and causing a kernel panic.  Add length checks for both rtl8187 and rtl8187b descriptor headers before attempting to access them, dropping the packet cleanly if the check fails.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68759",
                                "url": "https://ubuntu.com/security/CVE-2025-68759",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()  In rtl8180_init_rx_ring(), memory is allocated for skb packets and DMA allocations in a loop. When an allocation fails, the previously successful allocations are not freed on exit.  Fix that by jumping to err_free_rings label on error, which calls rtl8180_free_rx_ring() to free the allocations. Remove the free of rx_ring in rtl8180_init_rx_ring() error path, and set the freed priv->rx_buf entry to null, to avoid double free.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68364",
                                "url": "https://ubuntu.com/security/CVE-2025-68364",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ocfs2: relax BUG() to ocfs2_error() in __ocfs2_move_extent()  In '__ocfs2_move_extent()', relax 'BUG()' to 'ocfs2_error()' just to avoid crashing the whole kernel due to a filesystem corruption.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68366",
                                "url": "https://ubuntu.com/security/CVE-2025-68366",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nbd: defer config unlock in nbd_genl_connect  There is one use-after-free warning when running NBD_CMD_CONNECT and NBD_CLEAR_SOCK:  nbd_genl_connect   nbd_alloc_and_init_config // config_refs=1   nbd_start_device // config_refs=2   set NBD_RT_HAS_CONFIG_REF\t\t\topen nbd // config_refs=3   recv_work done // config_refs=2 \t\t\t\t\t\tNBD_CLEAR_SOCK // config_refs=1 \t\t\t\t\t\tclose nbd // config_refs=0   refcount_inc -> uaf  ------------[ cut here ]------------ refcount_t: addition on 0; use-after-free. WARNING: CPU: 24 PID: 1014 at lib/refcount.c:25 refcount_warn_saturate+0x12e/0x290  nbd_genl_connect+0x16d0/0x1ab0  genl_family_rcv_msg_doit+0x1f3/0x310  genl_rcv_msg+0x44a/0x790  The issue can be easily reproduced by adding a small delay before refcount_inc(&nbd->config_refs) in nbd_genl_connect():          mutex_unlock(&nbd->config_lock);         if (!ret) {                 set_bit(NBD_RT_HAS_CONFIG_REF, &config->runtime_flags); +               printk(\"before sleep\\n\"); +               mdelay(5 * 1000); +               printk(\"after sleep\\n\");                 refcount_inc(&nbd->config_refs);                 nbd_connect_reply(info, nbd->index);         }",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68367",
                                "url": "https://ubuntu.com/security/CVE-2025-68367",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macintosh/mac_hid: fix race condition in mac_hid_toggle_emumouse  The following warning appears when running syzkaller, and this issue also exists in the mainline code.   ------------[ cut here ]------------  list_add double add: new=ffffffffa57eee28, prev=ffffffffa57eee28, next=ffffffffa5e63100.  WARNING: CPU: 0 PID: 1491 at lib/list_debug.c:35 __list_add_valid_or_report+0xf7/0x130  Modules linked in:  CPU: 0 PID: 1491 Comm: syz.1.28 Not tainted 6.6.0+ #3  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014  RIP: 0010:__list_add_valid_or_report+0xf7/0x130  RSP: 0018:ff1100010dfb7b78 EFLAGS: 00010282  RAX: 0000000000000000 RBX: ffffffffa57eee18 RCX: ffffffff97fc9817  RDX: 0000000000040000 RSI: ffa0000002383000 RDI: 0000000000000001  RBP: ffffffffa57eee28 R08: 0000000000000001 R09: ffe21c0021bf6f2c  R10: 0000000000000001 R11: 6464615f7473696c R12: ffffffffa5e63100  R13: ffffffffa57eee28 R14: ffffffffa57eee28 R15: ff1100010dfb7d48  FS:  00007fb14398b640(0000) GS:ff11000119600000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000000 CR3: 000000010d096005 CR4: 0000000000773ef0  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000  DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400  PKRU: 80000000  Call Trace:   <TASK>   input_register_handler+0xb3/0x210   mac_hid_start_emulation+0x1c5/0x290   mac_hid_toggle_emumouse+0x20a/0x240   proc_sys_call_handler+0x4c2/0x6e0   new_sync_write+0x1b1/0x2d0   vfs_write+0x709/0x950   ksys_write+0x12a/0x250   do_syscall_64+0x5a/0x110   entry_SYSCALL_64_after_hwframe+0x78/0xe2  The WARNING occurs when two processes concurrently write to the mac-hid emulation sysctl, causing a race condition in mac_hid_toggle_emumouse(). Both processes read old_val=0, then both try to register the input handler, leading to a double list_add of the same handler.    CPU0                             CPU1   -------------------------        -------------------------   vfs_write() //write 1            vfs_write()  //write 1     proc_sys_write()                 proc_sys_write()       mac_hid_toggle_emumouse()          mac_hid_toggle_emumouse()         old_val = *valp // old_val=0                                            old_val = *valp // old_val=0                                            mutex_lock_killable()                                            proc_dointvec() // *valp=1                                            mac_hid_start_emulation()                                              input_register_handler()                                            mutex_unlock()         mutex_lock_killable()         proc_dointvec()         mac_hid_start_emulation()           input_register_handler() //Trigger Warning         mutex_unlock()  Fix this by moving the old_val read inside the mutex lock region.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68372",
                                "url": "https://ubuntu.com/security/CVE-2025-68372",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nbd: defer config put in recv_work  There is one uaf issue in recv_work when running NBD_CLEAR_SOCK and NBD_CMD_RECONFIGURE:   nbd_genl_connect     // conf_ref=2 (connect and recv_work A)   nbd_open\t       // conf_ref=3   recv_work A done     // conf_ref=2   NBD_CLEAR_SOCK       // conf_ref=1   nbd_genl_reconfigure // conf_ref=2 (trigger recv_work B)   close nbd\t       // conf_ref=1   recv_work B     config_put         // conf_ref=0     atomic_dec(&config->recv_threads); -> UAF  Or only running NBD_CLEAR_SOCK:   nbd_genl_connect   // conf_ref=2   nbd_open \t     // conf_ref=3   NBD_CLEAR_SOCK     // conf_ref=2   close nbd     nbd_release       config_put     // conf_ref=1   recv_work     config_put \t     // conf_ref=0     atomic_dec(&config->recv_threads); -> UAF  Commit 87aac3a80af5 (\"nbd: call nbd_config_put() before notifying the waiter\") moved nbd_config_put() to run before waking up the waiter in recv_work, in order to ensure that nbd_start_device_ioctl() would not be woken up while nbd->task_recv was still uncleared.  However, in nbd_start_device_ioctl(), after being woken up it explicitly calls flush_workqueue() to make sure all current works are finished. Therefore, there is no need to move the config put ahead of the wakeup.  Move nbd_config_put() to the end of recv_work, so that the reference is held for the whole lifetime of the worker thread. This makes sure the config cannot be freed while recv_work is still running, even if clear + reconfigure interleave.  In addition, we don't need to worry about recv_work dropping the last nbd_put (which causes deadlock):  path A (netlink with NBD_CFLAG_DESTROY_ON_DISCONNECT):   connect  // nbd_refs=1 (trigger recv_work)   open nbd // nbd_refs=2   NBD_CLEAR_SOCK   close nbd     nbd_release       nbd_disconnect_and_put         flush_workqueue // recv_work done       nbd_config_put         nbd_put // nbd_refs=1       nbd_put // nbd_refs=0         queue_work  path B (netlink without NBD_CFLAG_DESTROY_ON_DISCONNECT):   connect  // nbd_refs=2 (trigger recv_work)   open nbd // nbd_refs=3   NBD_CLEAR_SOCK // conf_refs=2   close nbd     nbd_release       nbd_config_put // conf_refs=1       nbd_put // nbd_refs=2   recv_work done // conf_refs=0, nbd_refs=1   rmmod // nbd_refs=0  Depends-on: e2daec488c57 (\"nbd: Fix hungtask when nbd_config_put\")",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68746",
                                "url": "https://ubuntu.com/security/CVE-2025-68746",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: tegra210-quad: Fix timeout handling  When the CPU that the QSPI interrupt handler runs on (typically CPU 0) is excessively busy, it can lead to rare cases of the IRQ thread not running before the transfer timeout is reached.  While handling the timeouts, any pending transfers are cleaned up and the message that they correspond to is marked as failed, which leaves the curr_xfer field pointing at stale memory.  To avoid this, clear curr_xfer to NULL upon timeout and check for this condition when the IRQ thread is finally run.  While at it, also make sure to clear interrupts on failure so that new interrupts can be run.  A better, more involved, fix would move the interrupt clearing into a hard IRQ handler. Ideally we would also want to signal that the IRQ thread no longer needs to be run after the timeout is hit to avoid the extra check for a valid transfer.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68724",
                                "url": "https://ubuntu.com/security/CVE-2025-68724",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: asymmetric_keys - prevent overflow in asymmetric_key_generate_id  Use check_add_overflow() to guard against potential integer overflows when adding the binary blob lengths and the size of an asymmetric_key_id structure and return ERR_PTR(-EOVERFLOW) accordingly. This prevents a possible buffer overflow when copying data from potentially malicious X.509 certificate fields that can be arbitrarily large, such as ASN.1 INTEGER serial numbers, issuer names, etc.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68727",
                                "url": "https://ubuntu.com/security/CVE-2025-68727",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: Fix uninit buffer allocated by __getname()  Fix uninit errors caused after buffer allocation given to 'de'; by initializing the buffer with zeroes. The fix was found by using KMSAN.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68728",
                                "url": "https://ubuntu.com/security/CVE-2025-68728",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: fix uninit memory after failed mi_read in mi_format_new  Fix a KMSAN un-init bug found by syzkaller.  ntfs_get_bh() expects a buffer from sb_getblk(), that buffer may not be uptodate. We do not bring the buffer uptodate before setting it as uptodate. If the buffer were to not be uptodate, it could mean adding a buffer with un-init data to the mi record. Attempting to load that record will trigger KMSAN.  Avoid this by setting the buffer as uptodate, if it’s not already, by overwriting it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68757",
                                "url": "https://ubuntu.com/security/CVE-2025-68757",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vgem-fence: Fix potential deadlock on release  A timer that expires a vgem fence automatically in 10 seconds is now released with timer_delete_sync() from fence->ops.release() called on last dma_fence_put().  In some scenarios, it can run in IRQ context, which is not safe unless TIMER_IRQSAFE is used.  One potentially risky scenario was demonstrated in Intel DRM CI trybot, BAT run on machine bat-adlp-6, while working on new IGT subtests syncobj_timeline@stress-* as user space replacements of some problematic test cases of a dma-fence-chain selftest [1].  [117.004338] ================================ [117.004340] WARNING: inconsistent lock state [117.004342] 6.17.0-rc7-CI_DRM_17270-g7644974e648c+ #1 Tainted: G S   U [117.004346] -------------------------------- [117.004347] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. [117.004349] swapper/0/0 [HC1[1]:SC1[1]:HE0:SE0] takes: [117.004352] ffff888138f86aa8 ((&fence->timer)){?.-.}-{0:0}, at: __timer_delete_sync+0x4b/0x190 [117.004361] {HARDIRQ-ON-W} state was registered at: [117.004363]   lock_acquire+0xc4/0x2e0 [117.004366]   call_timer_fn+0x80/0x2a0 [117.004368]   __run_timers+0x231/0x310 [117.004370]   run_timer_softirq+0x76/0xe0 [117.004372]   handle_softirqs+0xd4/0x4d0 [117.004375]   __irq_exit_rcu+0x13f/0x160 [117.004377]   irq_exit_rcu+0xe/0x20 [117.004379]   sysvec_apic_timer_interrupt+0xa0/0xc0 [117.004382]   asm_sysvec_apic_timer_interrupt+0x1b/0x20 [117.004385]   cpuidle_enter_state+0x12b/0x8a0 [117.004388]   cpuidle_enter+0x2e/0x50 [117.004393]   call_cpuidle+0x22/0x60 [117.004395]   do_idle+0x1fd/0x260 [117.004398]   cpu_startup_entry+0x29/0x30 [117.004401]   start_secondary+0x12d/0x160 [117.004404]   common_startup_64+0x13e/0x141 [117.004407] irq event stamp: 2282669 [117.004409] hardirqs last  enabled at (2282668): [<ffffffff8289db71>] _raw_spin_unlock_irqrestore+0x51/0x80 [117.004414] hardirqs last disabled at (2282669): [<ffffffff82882021>] sysvec_irq_work+0x11/0xc0 [117.004419] softirqs last  enabled at (2254702): [<ffffffff8289fd00>] __do_softirq+0x10/0x18 [117.004423] softirqs last disabled at (2254725): [<ffffffff813d4ddf>] __irq_exit_rcu+0x13f/0x160 [117.004426] other info that might help us debug this: [117.004429]  Possible unsafe locking scenario: [117.004432]        CPU0 [117.004433]        ---- [117.004434]   lock((&fence->timer)); [117.004436]   <Interrupt> [117.004438]     lock((&fence->timer)); [117.004440]  *** DEADLOCK *** [117.004443] 1 lock held by swapper/0/0: [117.004445]  #0: ffffc90000003d50 ((&fence->timer)){?.-.}-{0:0}, at: call_timer_fn+0x7a/0x2a0 [117.004450] stack backtrace: [117.004453] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G S   U             6.17.0-rc7-CI_DRM_17270-g7644974e648c+ #1 PREEMPT(voluntary) [117.004455] Tainted: [S]=CPU_OUT_OF_SPEC, [U]=USER [117.004455] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR4 RVP, BIOS RPLPFWI1.R00.4035.A00.2301200723 01/20/2023 [117.004456] Call Trace: [117.004456]  <IRQ> [117.004457]  dump_stack_lvl+0x91/0xf0 [117.004460]  dump_stack+0x10/0x20 [117.004461]  print_usage_bug.part.0+0x260/0x360 [117.004463]  mark_lock+0x76e/0x9c0 [117.004465]  ? register_lock_class+0x48/0x4a0 [117.004467]  __lock_acquire+0xbc3/0x2860 [117.004469]  lock_acquire+0xc4/0x2e0 [117.004470]  ? __timer_delete_sync+0x4b/0x190 [117.004472]  ? __timer_delete_sync+0x4b/0x190 [117.004473]  __timer_delete_sync+0x68/0x190 [117.004474]  ? __timer_delete_sync+0x4b/0x190 [117.004475]  timer_delete_sync+0x10/0x20 [117.004476]  vgem_fence_release+0x19/0x30 [vgem] [117.004478]  dma_fence_release+0xc1/0x3b0 [117.004480]  ? dma_fence_release+0xa1/0x3b0 [117.004481]  dma_fence_chain_release+0xe7/0x130 [117.004483]  dma_fence_release+0xc1/0x3b0 [117.004484]  ? _raw_spin_unlock_irqrestore+0x27/0x80 [117.004485]  dma_fence_chain_irq_work+0x59/0x80 [117.004487]  irq_work_single+0x75/0xa0 [117.004490]  irq_work_r ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68732",
                                "url": "https://ubuntu.com/security/CVE-2025-68732",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gpu: host1x: Fix race in syncpt alloc/free  Fix race condition between host1x_syncpt_alloc() and host1x_syncpt_put() by using kref_put_mutex() instead of kref_put() + manual mutex locking.  This ensures no thread can acquire the syncpt_mutex after the refcount drops to zero but before syncpt_release acquires it. This prevents races where syncpoints could be allocated while still being cleaned up from a previous release.  Remove explicit mutex locking in syncpt_release as kref_put_mutex() handles this atomically.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68733",
                                "url": "https://ubuntu.com/security/CVE-2025-68733",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smack: fix bug: unprivileged task can create labels  If an unprivileged task is allowed to relabel itself (/smack/relabel-self is not empty), it can freely create new labels by writing their names into own /proc/PID/attr/smack/current  This occurs because do_setattr() imports the provided label in advance, before checking \"relabel-self\" list.  This change ensures that the \"relabel-self\" list is checked before importing the label.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68254",
                                "url": "https://ubuntu.com/security/CVE-2025-68254",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix out-of-bounds read in OnBeacon ESR IE parsing  The Extended Supported Rates (ESR) IE handling in OnBeacon accessed *(p + 1 + ielen) and *(p + 2 + ielen) without verifying that these offsets lie within the received frame buffer. A malformed beacon with an ESR IE positioned at the end of the buffer could cause an out-of-bounds read, potentially triggering a kernel panic.  Add a boundary check to ensure that the ESR IE body and the subsequent bytes are within the limits of the frame before attempting to access them.  This prevents OOB reads caused by malformed beacon frames.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68255",
                                "url": "https://ubuntu.com/security/CVE-2025-68255",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix stack buffer overflow in OnAssocReq IE parsing  The Supported Rates IE length from an incoming Association Request frame was used directly as the memcpy() length when copying into a fixed-size 16-byte stack buffer (supportRate). A malicious station can advertise an IE length larger than 16 bytes, causing a stack buffer overflow.  Clamp ie_len to the buffer size before copying the Supported Rates IE, and correct the bounds check when merging Extended Supported Rates to prevent a second potential overflow.  This prevents kernel stack corruption triggered by malformed association requests.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68257",
                                "url": "https://ubuntu.com/security/CVE-2025-68257",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: check device's attached status in compat ioctls  Syzbot identified an issue [1] that crashes kernel, seemingly due to unexistent callback dev->get_valid_routes(). By all means, this should not occur as said callback must always be set to get_zero_valid_routes() in __comedi_device_postconfig().  As the crash seems to appear exclusively in i386 kernels, at least, judging from [1] reports, the blame lies with compat versions of standard IOCTL handlers. Several of them are modified and do not use comedi_unlocked_ioctl(). While functionality of these ioctls essentially copy their original versions, they do not have required sanity check for device's attached status. This, in turn, leads to a possibility of calling select IOCTLs on a device that has not been properly setup, even via COMEDI_DEVCONFIG.  Doing so on unconfigured devices means that several crucial steps are missed, for instance, specifying dev->get_valid_routes() callback.  Fix this somewhat crudely by ensuring device's attached status before performing any ioctls, improving logic consistency between modern and compat functions.  [1] Syzbot report: BUG: kernel NULL pointer dereference, address: 0000000000000000 ... CR2: ffffffffffffffd6 CR3: 000000006c717000 CR4: 0000000000352ef0 Call Trace:  <TASK>  get_valid_routes drivers/comedi/comedi_fops.c:1322 [inline]  parse_insn+0x78c/0x1970 drivers/comedi/comedi_fops.c:1401  do_insnlist_ioctl+0x272/0x700 drivers/comedi/comedi_fops.c:1594  compat_insnlist drivers/comedi/comedi_fops.c:3208 [inline]  comedi_compat_ioctl+0x810/0x990 drivers/comedi/comedi_fops.c:3273  __do_compat_sys_ioctl fs/ioctl.c:695 [inline]  __se_compat_sys_ioctl fs/ioctl.c:638 [inline]  __ia32_compat_sys_ioctl+0x242/0x370 fs/ioctl.c:638  do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline] ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68258",
                                "url": "https://ubuntu.com/security/CVE-2025-68258",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: multiq3: sanitize config options in multiq3_attach()  Syzbot identified an issue [1] in multiq3_attach() that induces a task timeout due to open() or COMEDI_DEVCONFIG ioctl operations, specifically, in the case of multiq3 driver.  This problem arose when syzkaller managed to craft weird configuration options used to specify the number of channels in encoder subdevice. If a particularly great number is passed to s->n_chan in multiq3_attach() via it->options[2], then multiple calls to multiq3_encoder_reset() at the end of driver-specific attach() method will be running for minutes, thus blocking tasks and affected devices as well.  While this issue is most likely not too dangerous for real-life devices, it still makes sense to sanitize configuration inputs. Enable a sensible limit on the number of encoder chips (4 chips max, each with 2 channels) to stop this behaviour from manifesting.  [1] Syzbot crash: INFO: task syz.2.19:6067 blocked for more than 143 seconds. ... Call Trace:  <TASK>  context_switch kernel/sched/core.c:5254 [inline]  __schedule+0x17c4/0x4d60 kernel/sched/core.c:6862  __schedule_loop kernel/sched/core.c:6944 [inline]  schedule+0x165/0x360 kernel/sched/core.c:6959  schedule_preempt_disabled+0x13/0x30 kernel/sched/core.c:7016  __mutex_lock_common kernel/locking/mutex.c:676 [inline]  __mutex_lock+0x7e6/0x1350 kernel/locking/mutex.c:760  comedi_open+0xc0/0x590 drivers/comedi/comedi_fops.c:2868  chrdev_open+0x4cc/0x5e0 fs/char_dev.c:414  do_dentry_open+0x953/0x13f0 fs/open.c:965  vfs_open+0x3b/0x340 fs/open.c:1097 ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68332",
                                "url": "https://ubuntu.com/security/CVE-2025-68332",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: c6xdigio: Fix invalid PNP driver unregistration  The Comedi low-level driver \"c6xdigio\" seems to be for a parallel port connected device.  When the Comedi core calls the driver's Comedi \"attach\" handler `c6xdigio_attach()` to configure a Comedi to use this driver, it tries to enable the parallel port PNP resources by registering a PNP driver with `pnp_register_driver()`, but ignores the return value.  (The `struct pnp_driver` it uses has only the `name` and `id_table` members filled in.)  The driver's Comedi \"detach\" handler `c6xdigio_detach()` unconditionally unregisters the PNP driver with `pnp_unregister_driver()`.  It is possible for `c6xdigio_attach()` to return an error before it calls `pnp_register_driver()` and it is possible for the call to `pnp_register_driver()` to return an error (that is ignored).  In both cases, the driver should not be calling `pnp_unregister_driver()` as it does in `c6xdigio_detach()`.  (Note that `c6xdigio_detach()` will be called by the Comedi core if `c6xdigio_attach()` returns an error, or if the Comedi core decides to detach the Comedi device from the driver for some other reason.)  The unconditional call to `pnp_unregister_driver()` without a previous successful call to `pnp_register_driver()` will cause `driver_unregister()` to issue a warning \"Unexpected driver unregister!\".  This was detected by Syzbot [1].  Also, the PNP driver registration and unregistration should be done at module init and exit time, respectively, not when attaching or detaching Comedi devices to the driver.  (There might be more than one Comedi device being attached to the driver, although that is unlikely.)  Change the driver to do the PNP driver registration at module init time, and the unregistration at module exit time.  Since `c6xdigio_detach()` now only calls `comedi_legacy_detach()`, remove the function and change the Comedi driver \"detach\" handler to `comedi_legacy_detach`.  ------------------------------------------- [1] Syzbot sample crash report: Unexpected driver unregister! WARNING: CPU: 0 PID: 5970 at drivers/base/driver.c:273 driver_unregister drivers/base/driver.c:273 [inline] WARNING: CPU: 0 PID: 5970 at drivers/base/driver.c:273 driver_unregister+0x90/0xb0 drivers/base/driver.c:270 Modules linked in: CPU: 0 UID: 0 PID: 5970 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 RIP: 0010:driver_unregister drivers/base/driver.c:273 [inline] RIP: 0010:driver_unregister+0x90/0xb0 drivers/base/driver.c:270 Code: 48 89 ef e8 c2 e6 82 fc 48 89 df e8 3a 93 ff ff 5b 5d e9 c3 6d d9 fb e8 be 6d d9 fb 90 48 c7 c7 e0 f8 1f 8c e8 51 a2 97 fb 90 <0f> 0b 90 90 5b 5d e9 a5 6d d9 fb e8 e0 f4 41 fc eb 94 e8 d9 f4 41 RSP: 0018:ffffc9000373f9a0 EFLAGS: 00010282 RAX: 0000000000000000 RBX: ffffffff8ff24720 RCX: ffffffff817b6ee8 RDX: ffff88807c932480 RSI: ffffffff817b6ef5 RDI: 0000000000000001 RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000001 R11: 0000000000000001 R12: ffffffff8ff24660 R13: dffffc0000000000 R14: 0000000000000000 R15: ffff88814cca0000 FS:  000055556dab1500(0000) GS:ffff8881249d9000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000055f77f285cd0 CR3: 000000007d871000 CR4: 00000000003526f0 Call Trace:  <TASK>  comedi_device_detach_locked+0x12f/0xa50 drivers/comedi/drivers.c:207  comedi_device_detach+0x67/0xb0 drivers/comedi/drivers.c:215  comedi_device_attach+0x43d/0x900 drivers/comedi/drivers.c:1011  do_devconfig_ioctl+0x1b1/0x710 drivers/comedi/comedi_fops.c:872  comedi_unlocked_ioctl+0x165d/0x2f00 drivers/comedi/comedi_fops.c:2178  vfs_ioctl fs/ioctl.c:51 [inline]  __do_sys_ioctl fs/ioctl.c:597 [inline]  __se_sys_ioctl fs/ioctl.c:583 [inline]  __x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_sys ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68266",
                                "url": "https://ubuntu.com/security/CVE-2025-68266",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bfs: Reconstruct file type when loading from disk  syzbot is reporting that S_IFMT bits of inode->i_mode can become bogus when the S_IFMT bits of the 32bits \"mode\" field loaded from disk are corrupted or when the 32bits \"attributes\" field loaded from disk are corrupted.  A documentation says that BFS uses only lower 9 bits of the \"mode\" field. But I can't find an explicit explanation that the unused upper 23 bits (especially, the S_IFMT bits) are initialized with 0.  Therefore, ignore the S_IFMT bits of the \"mode\" field loaded from disk. Also, verify that the value of the \"attributes\" field loaded from disk is either BFS_VREG or BFS_VDIR (because BFS supports only regular files and the root directory).",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68335",
                                "url": "https://ubuntu.com/security/CVE-2025-68335",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: pcl818: fix null-ptr-deref in pcl818_ai_cancel()  Syzbot identified an issue [1] in pcl818_ai_cancel(), which stems from the fact that in case of early device detach via pcl818_detach(), subdevice dev->read_subdev may not have initialized its pointer to &struct comedi_async as intended. Thus, any such dereferencing of &s->async->cmd will lead to general protection fault and kernel crash.  Mitigate this problem by removing a call to pcl818_ai_cancel() from pcl818_detach() altogether. This way, if the subdevice setups its support for async commands, everything async-related will be handled via subdevice's own ->cancel() function in comedi_device_detach_locked() even before pcl818_detach(). If no support for asynchronous commands is provided, there is no need to cancel anything either.  [1] Syzbot crash: Oops: general protection fault, probably for non-canonical address 0xdffffc0000000005: 0000 [#1] SMP KASAN PTI KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f] CPU: 1 UID: 0 PID: 6050 Comm: syz.0.18 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025 RIP: 0010:pcl818_ai_cancel+0x69/0x3f0 drivers/comedi/drivers/pcl818.c:762 ... Call Trace:  <TASK>  pcl818_detach+0x66/0xd0 drivers/comedi/drivers/pcl818.c:1115  comedi_device_detach_locked+0x178/0x750 drivers/comedi/drivers.c:207  do_devconfig_ioctl drivers/comedi/comedi_fops.c:848 [inline]  comedi_unlocked_ioctl+0xcde/0x1020 drivers/comedi/comedi_fops.c:2178  vfs_ioctl fs/ioctl.c:51 [inline]  __do_sys_ioctl fs/ioctl.c:597 [inline] ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68261",
                                "url": "https://ubuntu.com/security/CVE-2025-68261",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock()  Fix a race between inline data destruction and block mapping.  The function ext4_destroy_inline_data_nolock() changes the inode data layout by clearing EXT4_INODE_INLINE_DATA and setting EXT4_INODE_EXTENTS. At the same time, another thread may execute ext4_map_blocks(), which tests EXT4_INODE_EXTENTS to decide whether to call ext4_ext_map_blocks() or ext4_ind_map_blocks().  Without i_data_sem protection, ext4_ind_map_blocks() may receive inode with EXT4_INODE_EXTENTS flag and triggering assert.  kernel BUG at fs/ext4/indirect.c:546! EXT4-fs (loop2): unmounting filesystem. invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:ext4_ind_map_blocks.cold+0x2b/0x5a fs/ext4/indirect.c:546  Call Trace:  <TASK>  ext4_map_blocks+0xb9b/0x16f0 fs/ext4/inode.c:681  _ext4_get_block+0x242/0x590 fs/ext4/inode.c:822  ext4_block_write_begin+0x48b/0x12c0 fs/ext4/inode.c:1124  ext4_write_begin+0x598/0xef0 fs/ext4/inode.c:1255  ext4_da_write_begin+0x21e/0x9c0 fs/ext4/inode.c:3000  generic_perform_write+0x259/0x5d0 mm/filemap.c:3846  ext4_buffered_write_iter+0x15b/0x470 fs/ext4/file.c:285  ext4_file_write_iter+0x8e0/0x17f0 fs/ext4/file.c:679  call_write_iter include/linux/fs.h:2271 [inline]  do_iter_readv_writev+0x212/0x3c0 fs/read_write.c:735  do_iter_write+0x186/0x710 fs/read_write.c:861  vfs_iter_write+0x70/0xa0 fs/read_write.c:902  iter_file_splice_write+0x73b/0xc90 fs/splice.c:685  do_splice_from fs/splice.c:763 [inline]  direct_splice_actor+0x10f/0x170 fs/splice.c:950  splice_direct_to_actor+0x33a/0xa10 fs/splice.c:896  do_splice_direct+0x1a9/0x280 fs/splice.c:1002  do_sendfile+0xb13/0x12c0 fs/read_write.c:1255  __do_sys_sendfile64 fs/read_write.c:1323 [inline]  __se_sys_sendfile64 fs/read_write.c:1309 [inline]  __x64_sys_sendfile64+0x1cf/0x210 fs/read_write.c:1309  do_syscall_x64 arch/x86/entry/common.c:51 [inline]  do_syscall_64+0x35/0x80 arch/x86/entry/common.c:81  entry_SYSCALL_64_after_hwframe+0x6e/0xd8",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68336",
                                "url": "https://ubuntu.com/security/CVE-2025-68336",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  locking/spinlock/debug: Fix data-race in do_raw_write_lock  KCSAN reports:  BUG: KCSAN: data-race in do_raw_write_lock / do_raw_write_lock  write (marked) to 0xffff800009cf504c of 4 bytes by task 1102 on cpu 1:  do_raw_write_lock+0x120/0x204  _raw_write_lock_irq  do_exit  call_usermodehelper_exec_async  ret_from_fork  read to 0xffff800009cf504c of 4 bytes by task 1103 on cpu 0:  do_raw_write_lock+0x88/0x204  _raw_write_lock_irq  do_exit  call_usermodehelper_exec_async  ret_from_fork  value changed: 0xffffffff -> 0x00000001  Reported by Kernel Concurrency Sanitizer on: CPU: 0 PID: 1103 Comm: kworker/u4:1 6.1.111  Commit 1a365e822372 (\"locking/spinlock/debug: Fix various data races\") has adressed most of these races, but seems to be not consistent/not complete.  >From do_raw_write_lock() only debug_write_lock_after() part has been converted to WRITE_ONCE(), but not debug_write_lock_before() part. Do it now.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68264",
                                "url": "https://ubuntu.com/security/CVE-2025-68264",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: refresh inline data size before write operations  The cached ei->i_inline_size can become stale between the initial size check and when ext4_update_inline_data()/ext4_create_inline_data() use it. Although ext4_get_max_inline_size() reads the correct value at the time of the check, concurrent xattr operations can modify i_inline_size before ext4_write_lock_xattr() is acquired.  This causes ext4_update_inline_data() and ext4_create_inline_data() to work with stale capacity values, leading to a BUG_ON() crash in ext4_write_inline_data():    kernel BUG at fs/ext4/inline.c:1331!   BUG_ON(pos + len > EXT4_I(inode)->i_inline_size);  The race window: 1. ext4_get_max_inline_size() reads i_inline_size = 60 (correct) 2. Size check passes for 50-byte write 3. [Another thread adds xattr, i_inline_size changes to 40] 4. ext4_write_lock_xattr() acquires lock 5. ext4_update_inline_data() uses stale i_inline_size = 60 6. Attempts to write 50 bytes but only 40 bytes actually available 7. BUG_ON() triggers  Fix this by recalculating i_inline_size via ext4_find_inline_data_nolock() immediately after acquiring xattr_sem. This ensures ext4_update_inline_data() and ext4_create_inline_data() work with current values that are protected from concurrent modifications.  This is similar to commit a54c4613dac1 (\"ext4: fix race writing to an inline_data file while its xattrs are changing\") which fixed i_inline_off staleness. This patch addresses the related i_inline_size staleness issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68337",
                                "url": "https://ubuntu.com/security/CVE-2025-68337",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system corrupted  There's issue when file system corrupted: ------------[ cut here ]------------ kernel BUG at fs/jbd2/transaction.c:1289! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 5 UID: 0 PID: 2031 Comm: mkdir Not tainted 6.18.0-rc1-next RIP: 0010:jbd2_journal_get_create_access+0x3b6/0x4d0 RSP: 0018:ffff888117aafa30 EFLAGS: 00010202 RAX: 0000000000000000 RBX: ffff88811a86b000 RCX: ffffffff89a63534 RDX: 1ffff110200ec602 RSI: 0000000000000004 RDI: ffff888100763010 RBP: ffff888100763000 R08: 0000000000000001 R09: ffff888100763028 R10: 0000000000000003 R11: 0000000000000000 R12: 0000000000000000 R13: ffff88812c432000 R14: ffff88812c608000 R15: ffff888120bfc000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f91d6970c99 CR3: 00000001159c4000 CR4: 00000000000006f0 Call Trace:  <TASK>  __ext4_journal_get_create_access+0x42/0x170  ext4_getblk+0x319/0x6f0  ext4_bread+0x11/0x100  ext4_append+0x1e6/0x4a0  ext4_init_new_dir+0x145/0x1d0  ext4_mkdir+0x326/0x920  vfs_mkdir+0x45c/0x740  do_mkdirat+0x234/0x2f0  __x64_sys_mkdir+0xd6/0x120  do_syscall_64+0x5f/0xfa0  entry_SYSCALL_64_after_hwframe+0x76/0x7e  The above issue occurs with us in errors=continue mode when accompanied by storage failures. There have been many inconsistencies in the file system data. In the case of file system data inconsistency, for example, if the block bitmap of a referenced block is not set, it can lead to the situation where a block being committed is allocated and used again. As a result, the following condition will not be satisfied then trigger BUG_ON. Of course, it is entirely possible to construct a problematic image that can trigger this BUG_ON through specific operations. In fact, I have constructed such an image and easily reproduced this issue. Therefore, J_ASSERT() holds true only under ideal conditions, but it may not necessarily be satisfied in exceptional scenarios. Using J_ASSERT() directly in abnormal situations would cause the system to crash, which is clearly not what we want. So here we directly trigger a JBD abort instead of immediately invoking BUG_ON.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-47666",
                                "url": "https://ubuntu.com/security/CVE-2024-47666",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: pm80xx: Set phy->enable_completion only when we wait for it  pm8001_phy_control() populates the enable_completion pointer with a stack address, sends a PHY_LINK_RESET / PHY_HARD_RESET, waits 300 ms, and returns. The problem arises when a phy control response comes late.  After 300 ms the pm8001_phy_control() function returns and the passed enable_completion stack address is no longer valid. Late phy control response invokes complete() on a dangling enable_completion pointer which leads to a kernel crash.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-10-09 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68327",
                                "url": "https://ubuntu.com/security/CVE-2025-68327",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: renesas_usbhs: Fix synchronous external abort on unbind  A synchronous external abort occurs on the Renesas RZ/G3S SoC if unbind is executed after the configuration sequence described above:  modprobe usb_f_ecm modprobe libcomposite modprobe configfs cd /sys/kernel/config/usb_gadget mkdir -p g1 cd g1 echo \"0x1d6b\" > idVendor echo \"0x0104\" > idProduct mkdir -p strings/0x409 echo \"0123456789\" > strings/0x409/serialnumber echo \"Renesas.\" > strings/0x409/manufacturer echo \"Ethernet Gadget\" > strings/0x409/product mkdir -p functions/ecm.usb0 mkdir -p configs/c.1 mkdir -p configs/c.1/strings/0x409 echo \"ECM\" > configs/c.1/strings/0x409/configuration  if [ ! -L configs/c.1/ecm.usb0 ]; then         ln -s functions/ecm.usb0 configs/c.1 fi  echo 11e20000.usb > UDC echo 11e20000.usb > /sys/bus/platform/drivers/renesas_usbhs/unbind  The displayed trace is as follows:   Internal error: synchronous external abort: 0000000096000010 [#1] SMP  CPU: 0 UID: 0 PID: 188 Comm: sh Tainted: G M 6.17.0-rc7-next-20250922-00010-g41050493b2bd #55 PREEMPT  Tainted: [M]=MACHINE_CHECK  Hardware name: Renesas SMARC EVK version 2 based on r9a08g045s33 (DT)  pstate: 604000c5 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)  pc : usbhs_sys_function_pullup+0x10/0x40 [renesas_usbhs]  lr : usbhsg_update_pullup+0x3c/0x68 [renesas_usbhs]  sp : ffff8000838b3920  x29: ffff8000838b3920 x28: ffff00000d585780 x27: 0000000000000000  x26: 0000000000000000 x25: 0000000000000000 x24: ffff00000c3e3810  x23: ffff00000d5e5c80 x22: ffff00000d5e5d40 x21: 0000000000000000  x20: 0000000000000000 x19: ffff00000d5e5c80 x18: 0000000000000020  x17: 2e30303230316531 x16: 312d7968703a7968 x15: 3d454d414e5f4344  x14: 000000000000002c x13: 0000000000000000 x12: 0000000000000000  x11: ffff00000f358f38 x10: ffff00000f358db0 x9 : ffff00000b41f418  x8 : 0101010101010101 x7 : 7f7f7f7f7f7f7f7f x6 : fefefeff6364626d  x5 : 8080808000000000 x4 : 000000004b5ccb9d x3 : 0000000000000000  x2 : 0000000000000000 x1 : ffff800083790000 x0 : ffff00000d5e5c80  Call trace:  usbhs_sys_function_pullup+0x10/0x40 [renesas_usbhs] (P)  usbhsg_pullup+0x4c/0x7c [renesas_usbhs]  usb_gadget_disconnect_locked+0x48/0xd4  gadget_unbind_driver+0x44/0x114  device_remove+0x4c/0x80  device_release_driver_internal+0x1c8/0x224  device_release_driver+0x18/0x24  bus_remove_device+0xcc/0x10c  device_del+0x14c/0x404  usb_del_gadget+0x88/0xc0  usb_del_gadget_udc+0x18/0x30  usbhs_mod_gadget_remove+0x24/0x44 [renesas_usbhs]  usbhs_mod_remove+0x20/0x30 [renesas_usbhs]  usbhs_remove+0x98/0xdc [renesas_usbhs]  platform_remove+0x20/0x30  device_remove+0x4c/0x80  device_release_driver_internal+0x1c8/0x224  device_driver_detach+0x18/0x24  unbind_store+0xb4/0xb8  drv_attr_store+0x24/0x38  sysfs_kf_write+0x7c/0x94  kernfs_fop_write_iter+0x128/0x1b8  vfs_write+0x2ac/0x350  ksys_write+0x68/0xfc  __arm64_sys_write+0x1c/0x28  invoke_syscall+0x48/0x110  el0_svc_common.constprop.0+0xc0/0xe0  do_el0_svc+0x1c/0x28  el0_svc+0x34/0xf0  el0t_64_sync_handler+0xa0/0xe4  el0t_64_sync+0x198/0x19c  Code: 7100003f 1a9f07e1 531c6c22 f9400001 (79400021)  ---[ end trace 0000000000000000 ]---  note: sh[188] exited with irqs disabled  note: sh[188] exited with preempt_count 1  The issue occurs because usbhs_sys_function_pullup(), which accesses the IP registers, is executed after the USBHS clocks have been disabled. The problem is reproducible on the Renesas RZ/G3S SoC starting with the addition of module stop in the clock enable/disable APIs. With module stop functionality enabled, a bus error is expected if a master accesses a module whose clock has been stopped and module stop activated.  Disable the IP clocks at the end of remove.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68295",
                                "url": "https://ubuntu.com/security/CVE-2025-68295",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb: client: fix memory leak in cifs_construct_tcon()  When having a multiuser mount with domain= specified and using cifscreds, cifs_set_cifscreds() will end up setting @ctx->domainname, so it needs to be freed before leaving cifs_construct_tcon().  This fixes the following memory leak reported by kmemleak:    mount.cifs //srv/share /mnt -o domain=ZELDA,multiuser,...   su - testuser   cifscreds add -d ZELDA -u testuser   ...   ls /mnt/1   ...   umount /mnt   echo scan > /sys/kernel/debug/kmemleak   cat /sys/kernel/debug/kmemleak   unreferenced object 0xffff8881203c3f08 (size 8):     comm \"ls\", pid 5060, jiffies 4307222943     hex dump (first 8 bytes):       5a 45 4c 44 41 00 cc cc                          ZELDA...     backtrace (crc d109a8cf):       __kmalloc_node_track_caller_noprof+0x572/0x710       kstrdup+0x3a/0x70       cifs_sb_tlink+0x1209/0x1770 [cifs]       cifs_get_fattr+0xe1/0xf50 [cifs]       cifs_get_inode_info+0xb5/0x240 [cifs]       cifs_revalidate_dentry_attr+0x2d1/0x470 [cifs]       cifs_getattr+0x28e/0x450 [cifs]       vfs_getattr_nosec+0x126/0x180       vfs_statx+0xf6/0x220       do_statx+0xab/0x110       __x64_sys_statx+0xd5/0x130       do_syscall_64+0xbb/0x380       entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68227",
                                "url": "https://ubuntu.com/security/CVE-2025-68227",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: Fix proto fallback detection with BPF  The sockmap feature allows bpf syscall from userspace, or based on bpf sockops, replacing the sk_prot of sockets during protocol stack processing with sockmap's custom read/write interfaces. ''' tcp_rcv_state_process()   syn_recv_sock()/subflow_syn_recv_sock()     tcp_init_transfer(BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB)       bpf_skops_established       <== sockops         bpf_sock_map_update(sk)   <== call bpf helper           tcp_bpf_update_proto()  <== update sk_prot '''  When the server has MPTCP enabled but the client sends a TCP SYN without MPTCP, subflow_syn_recv_sock() performs a fallback on the subflow, replacing the subflow sk's sk_prot with the native sk_prot. ''' subflow_syn_recv_sock()   subflow_ulp_fallback()     subflow_drop_ctx()       mptcp_subflow_ops_undo_override() '''  Then, this subflow can be normally used by sockmap, which replaces the native sk_prot with sockmap's custom sk_prot. The issue occurs when the user executes accept::mptcp_stream_accept::mptcp_fallback_tcp_ops(). Here, it uses sk->sk_prot to compare with the native sk_prot, but this is incorrect when sockmap is used, as we may incorrectly set sk->sk_socket->ops.  This fix uses the more generic sk_family for the comparison instead.  Additionally, this also prevents a WARNING from occurring:  result from ./scripts/decode_stacktrace.sh: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 337 at net/mptcp/protocol.c:68 mptcp_stream_accept \\ (net/mptcp/protocol.c:4005) Modules linked in: ...  PKRU: 55555554 Call Trace: <TASK> do_accept (net/socket.c:1989) __sys_accept4 (net/socket.c:2028 net/socket.c:2057) __x64_sys_accept (net/socket.c:2067) x64_sys_call (arch/x86/entry/syscall_64.c:41) do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) RIP: 0033:0x7f87ac92b83d  ---[ end trace 0000000000000000 ]---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68284",
                                "url": "https://ubuntu.com/security/CVE-2025-68284",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: prevent potential out-of-bounds writes in handle_auth_session_key()  The len field originates from untrusted network packets. Boundary checks have been added to prevent potential out-of-bounds writes when decrypting the connection secret or processing service tickets.  [ idryomov: changelog ]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68285",
                                "url": "https://ubuntu.com/security/CVE-2025-68285",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: fix potential use-after-free in have_mon_and_osd_map()  The wait loop in __ceph_open_session() can race with the client receiving a new monmap or osdmap shortly after the initial map is received.  Both ceph_monc_handle_map() and handle_one_map() install a new map immediately after freeing the old one      kfree(monc->monmap);     monc->monmap = monmap;      ceph_osdmap_destroy(osdc->osdmap);     osdc->osdmap = newmap;  under client->monc.mutex and client->osdc.lock respectively, but because neither is taken in have_mon_and_osd_map() it's possible for client->monc.monmap->epoch and client->osdc.osdmap->epoch arms in      client->monc.monmap && client->monc.monmap->epoch &&         client->osdc.osdmap && client->osdc.osdmap->epoch;  condition to dereference an already freed map.  This happens to be reproducible with generic/395 and generic/397 with KASAN enabled:      BUG: KASAN: slab-use-after-free in have_mon_and_osd_map+0x56/0x70     Read of size 4 at addr ffff88811012d810 by task mount.ceph/13305     CPU: 2 UID: 0 PID: 13305 Comm: mount.ceph Not tainted 6.14.0-rc2-build2+ #1266     ...     Call Trace:     <TASK>     have_mon_and_osd_map+0x56/0x70     ceph_open_session+0x182/0x290     ceph_get_tree+0x333/0x680     vfs_get_tree+0x49/0x180     do_new_mount+0x1a3/0x2d0     path_mount+0x6dd/0x730     do_mount+0x99/0xe0     __do_sys_mount+0x141/0x180     do_syscall_64+0x9f/0x100     entry_SYSCALL_64_after_hwframe+0x76/0x7e     </TASK>      Allocated by task 13305:     ceph_osdmap_alloc+0x16/0x130     ceph_osdc_init+0x27a/0x4c0     ceph_create_client+0x153/0x190     create_fs_client+0x50/0x2a0     ceph_get_tree+0xff/0x680     vfs_get_tree+0x49/0x180     do_new_mount+0x1a3/0x2d0     path_mount+0x6dd/0x730     do_mount+0x99/0xe0     __do_sys_mount+0x141/0x180     do_syscall_64+0x9f/0x100     entry_SYSCALL_64_after_hwframe+0x76/0x7e      Freed by task 9475:     kfree+0x212/0x290     handle_one_map+0x23c/0x3b0     ceph_osdc_handle_map+0x3c9/0x590     mon_dispatch+0x655/0x6f0     ceph_con_process_message+0xc3/0xe0     ceph_con_v1_try_read+0x614/0x760     ceph_con_workfn+0x2de/0x650     process_one_work+0x486/0x7c0     process_scheduled_works+0x73/0x90     worker_thread+0x1c8/0x2a0     kthread+0x2ec/0x300     ret_from_fork+0x24/0x40     ret_from_fork_asm+0x1a/0x30  Rewrite the wait loop to check the above condition directly with client->monc.mutex and client->osdc.lock taken as appropriate.  While at it, improve the timeout handling (previously mount_timeout could be exceeded in case wait_event_interruptible_timeout() slept more than once) and access client->auth_err under client->monc.mutex to match how it's set in finish_auth().  monmap_show() and osdmap_show() now take the respective lock before accessing the map as well.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68286",
                                "url": "https://ubuntu.com/security/CVE-2025-68286",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/display: Check NULL before accessing  [WHAT] IGT kms_cursor_legacy's long-nonblocking-modeset-vs-cursor-atomic fails with NULL pointer dereference. This can be reproduced with both an eDP panel and a DP monitors connected.   BUG: kernel NULL pointer dereference, address: 0000000000000000  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page  PGD 0 P4D 0  Oops: Oops: 0000 [#1] SMP NOPTI  CPU: 13 UID: 0 PID: 2960 Comm: kms_cursor_lega Not tainted 6.16.0-99-custom #8 PREEMPT(voluntary)  Hardware name: AMD ........  RIP: 0010:dc_stream_get_scanoutpos+0x34/0x130 [amdgpu]  Code: 57 4d 89 c7 41 56 49 89 ce 41 55 49 89 d5 41 54 49  89 fc 53 48 83 ec 18 48 8b 87 a0 64 00 00 48 89 75 d0 48 c7 c6 e0 41 30  c2 <48> 8b 38 48 8b 9f 68 06 00 00 e8 8d d7 fd ff 31 c0 48 81 c3 e0 02  RSP: 0018:ffffd0f3c2bd7608 EFLAGS: 00010292  RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffd0f3c2bd7668  RDX: ffffd0f3c2bd7664 RSI: ffffffffc23041e0 RDI: ffff8b32494b8000  RBP: ffffd0f3c2bd7648 R08: ffffd0f3c2bd766c R09: ffffd0f3c2bd7760  R10: ffffd0f3c2bd7820 R11: 0000000000000000 R12: ffff8b32494b8000  R13: ffffd0f3c2bd7664 R14: ffffd0f3c2bd7668 R15: ffffd0f3c2bd766c  FS:  000071f631b68700(0000) GS:ffff8b399f114000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000000 CR3: 00000001b8105000 CR4: 0000000000f50ef0  PKRU: 55555554  Call Trace:  <TASK>  dm_crtc_get_scanoutpos+0xd7/0x180 [amdgpu]  amdgpu_display_get_crtc_scanoutpos+0x86/0x1c0 [amdgpu]  ? __pfx_amdgpu_crtc_get_scanout_position+0x10/0x10[amdgpu]  amdgpu_crtc_get_scanout_position+0x27/0x50 [amdgpu]  drm_crtc_vblank_helper_get_vblank_timestamp_internal+0xf7/0x400  drm_crtc_vblank_helper_get_vblank_timestamp+0x1c/0x30  drm_crtc_get_last_vbltimestamp+0x55/0x90  drm_crtc_next_vblank_start+0x45/0xa0  drm_atomic_helper_wait_for_fences+0x81/0x1f0  ...  (cherry picked from commit 621e55f1919640acab25383362b96e65f2baea3c)",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68287",
                                "url": "https://ubuntu.com/security/CVE-2025-68287",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: dwc3: Fix race condition between concurrent dwc3_remove_requests() call paths  This patch addresses a race condition caused by unsynchronized execution of multiple call paths invoking `dwc3_remove_requests()`, leading to premature freeing of USB requests and subsequent crashes.  Three distinct execution paths interact with `dwc3_remove_requests()`: Path 1: Triggered via `dwc3_gadget_reset_interrupt()` during USB reset handling. The call stack includes: - `dwc3_ep0_reset_state()` - `dwc3_ep0_stall_and_restart()` - `dwc3_ep0_out_start()` - `dwc3_remove_requests()` - `dwc3_gadget_del_and_unmap_request()`  Path 2: Also initiated from `dwc3_gadget_reset_interrupt()`, but through `dwc3_stop_active_transfers()`. The call stack includes: - `dwc3_stop_active_transfers()` - `dwc3_remove_requests()` - `dwc3_gadget_del_and_unmap_request()`  Path 3: Occurs independently during `adb root` execution, which triggers USB function unbind and bind operations. The sequence includes: - `gserial_disconnect()` - `usb_ep_disable()` - `dwc3_gadget_ep_disable()` - `dwc3_remove_requests()` with `-ESHUTDOWN` status  Path 3 operates asynchronously and lacks synchronization with Paths 1 and 2. When Path 3 completes, it disables endpoints and frees 'out' requests. If Paths 1 or 2 are still processing these requests, accessing freed memory leads to a crash due to use-after-free conditions.  To fix this added check for request completion and skip processing if already completed and added the request status for ep0 while queue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68331",
                                "url": "https://ubuntu.com/security/CVE-2025-68331",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: uas: fix urb unmapping issue when the uas device is remove during ongoing data transfer  When a UAS device is unplugged during data transfer, there is a probability of a system panic occurring. The root cause is an access to an invalid memory address during URB callback handling. Specifically, this happens when the dma_direct_unmap_sg() function is called within the usb_hcd_unmap_urb_for_dma() interface, but the sg->dma_address field is 0 and the sg data structure has already been freed.  The SCSI driver sends transfer commands by invoking uas_queuecommand_lck() in uas.c, using the uas_submit_urbs() function to submit requests to USB. Within the uas_submit_urbs() implementation, three URBs (sense_urb, data_urb, and cmd_urb) are sequentially submitted. Device removal may occur at any point during uas_submit_urbs execution, which may result in URB submission failure. However, some URBs might have been successfully submitted before the failure, and uas_submit_urbs will return the -ENODEV error code in this case. The current error handling directly calls scsi_done(). In the SCSI driver, this eventually triggers scsi_complete() to invoke scsi_end_request() for releasing the sgtable. The successfully submitted URBs, when being unlinked to giveback, call usb_hcd_unmap_urb_for_dma() in hcd.c, leading to exceptions during sg unmapping operations since the sg data structure has already been freed.  This patch modifies the error condition check in the uas_submit_urbs() function. When a UAS device is removed but one or more URBs have already been successfully submitted to USB, it avoids immediately invoking scsi_done() and save the cmnd to devinfo->cmnd array. If the successfully submitted URBs is completed before devinfo->resetting being set, then the scsi_done() function will be called within uas_try_complete() after all pending URB operations are finalized. Otherwise, the scsi_done() function will be called within uas_zap_pending(), which is executed after usb_kill_anchored_urbs().  The error handling only takes effect when uas_queuecommand_lck() calls uas_submit_urbs() and returns the error value -ENODEV . In this case, the device is disconnected, and the flow proceeds to uas_disconnect(), where uas_zap_pending() is invoked to call uas_try_complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40345",
                                "url": "https://ubuntu.com/security/CVE-2025-40345",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: storage: sddr55: Reject out-of-bound new_pba  Discovered by Atuin - Automated Vulnerability Discovery Engine.  new_pba comes from the status packet returned after each write. A bogus device could report values beyond the block count derived from info->capacity, letting the driver walk off the end of pba_to_lba[] and corrupt heap memory.  Reject PBAs that exceed the computed block count and fail the transfer so we avoid touching out-of-range mapping entries.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-12 18:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68288",
                                "url": "https://ubuntu.com/security/CVE-2025-68288",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: storage: Fix memory leak in USB bulk transport  A kernel memory leak was identified by the 'ioctl_sg01' test from Linux Test Project (LTP). The following bytes were mainly observed: 0x53425355.  When USB storage devices incorrectly skip the data phase with status data, the code extracts/validates the CSW from the sg buffer, but fails to clear it afterwards. This leaves status protocol data in srb's transfer buffer, such as the US_BULK_CS_SIGN 'USBS' signature observed here. Thus, this can lead to USB protocols leaks to user space through SCSI generic (/dev/sg*) interfaces, such as the one seen here when the LTP test requested 512 KiB.  Fix the leak by zeroing the CSW data in srb's transfer buffer immediately after the validation of devices that skip data phase.  Note: Differently from CVE-2018-1000204, which fixed a big leak by zero- ing pages at allocation time, this leak occurs after allocation, when USB protocol data is written to already-allocated sg pages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68289",
                                "url": "https://ubuntu.com/security/CVE-2025-68289",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: f_eem: Fix memory leak in eem_unwrap  The existing code did not handle the failure case of usb_ep_queue in the command path, potentially leading to memory leaks.  Improve error handling to free all allocated resources on usb_ep_queue failure. This patch continues to use goto logic for error handling, as the existing error handling is complex and not easily adaptable to auto-cleanup helpers.  kmemleak results:   unreferenced object 0xffffff895a512300 (size 240):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       kmem_cache_alloc+0x1b4/0x358       skb_clone+0x90/0xd8       eem_unwrap+0x1cc/0x36c   unreferenced object 0xffffff8a157f4000 (size 256):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       kmalloc_trace+0x48/0x140       dwc3_gadget_ep_alloc_request+0x58/0x11c       usb_ep_alloc_request+0x40/0xe4       eem_unwrap+0x204/0x36c   unreferenced object 0xffffff8aadbaac00 (size 128):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       __kmalloc+0x64/0x1a8       eem_unwrap+0x218/0x36c   unreferenced object 0xffffff89ccef3500 (size 64):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       kmalloc_trace+0x48/0x140       eem_unwrap+0x238/0x36c",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68290",
                                "url": "https://ubuntu.com/security/CVE-2025-68290",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  most: usb: fix double free on late probe failure  The MOST subsystem has a non-standard registration function which frees the interface on registration failures and on deregistration.  This unsurprisingly leads to bugs in the MOST drivers, and a couple of recent changes turned a reference underflow and use-after-free in the USB driver into several double free and a use-after-free on late probe failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68328",
                                "url": "https://ubuntu.com/security/CVE-2025-68328",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  firmware: stratix10-svc: fix bug in saving controller data  Fix the incorrect usage of platform_set_drvdata and dev_set_drvdata. They both are of the same data and overrides each other. This resulted in the rmmod of the svc driver to fail and throw a kernel panic for kthread_stop and fifo free.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68339",
                                "url": "https://ubuntu.com/security/CVE-2025-68339",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  atm/fore200e: Fix possible data race in fore200e_open()  Protect access to fore200e->available_cell_rate with rate_mtx lock in the error handling path of fore200e_open() to prevent a data race.  The field fore200e->available_cell_rate is a shared resource used to track available bandwidth. It is concurrently accessed by fore200e_open(), fore200e_close(), and fore200e_change_qos().  In fore200e_open(), the lock rate_mtx is correctly held when subtracting vcc->qos.txtp.max_pcr from available_cell_rate to reserve bandwidth. However, if the subsequent call to fore200e_activate_vcin() fails, the function restores the reserved bandwidth by adding back to available_cell_rate without holding the lock.  This introduces a race condition because available_cell_rate is a global device resource shared across all VCCs. If the error path in fore200e_open() executes concurrently with operations like fore200e_close() or fore200e_change_qos() on other VCCs, a read-modify-write race occurs.  Specifically, the error path reads the rate without the lock. If another CPU acquires the lock and modifies the rate (e.g., releasing bandwidth in fore200e_close()) between this read and the subsequent write, the error path will overwrite the concurrent update with a stale value. This results in incorrect bandwidth accounting.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-23 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68330",
                                "url": "https://ubuntu.com/security/CVE-2025-68330",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: accel: bmc150: Fix irq assumption regression  The code in bmc150-accel-core.c unconditionally calls bmc150_accel_set_interrupt() in the iio_buffer_setup_ops, such as on the runtime PM resume path giving a kernel splat like this if the device has no interrupts:  Unable to handle kernel NULL pointer dereference at virtual   address 00000001 when read  PC is at bmc150_accel_set_interrupt+0x98/0x194 LR is at __pm_runtime_resume+0x5c/0x64 (...) Call trace: bmc150_accel_set_interrupt from bmc150_accel_buffer_postenable+0x40/0x108 bmc150_accel_buffer_postenable from __iio_update_buffers+0xbe0/0xcbc __iio_update_buffers from enable_store+0x84/0xc8 enable_store from kernfs_fop_write_iter+0x154/0x1b4  This bug seems to have been in the driver since the beginning, but it only manifests recently, I do not know why.  Store the IRQ number in the state struct, as this is a common pattern in other drivers, then use this to determine if we have IRQ support or not.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68301",
                                "url": "https://ubuntu.com/security/CVE-2025-68301",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: atlantic: fix fragment overflow handling in RX path  The atlantic driver can receive packets with more than MAX_SKB_FRAGS (17) fragments when handling large multi-descriptor packets. This causes an out-of-bounds write in skb_add_rx_frag_netmem() leading to kernel panic.  The issue occurs because the driver doesn't check the total number of fragments before calling skb_add_rx_frag(). When a packet requires more than MAX_SKB_FRAGS fragments, the fragment index exceeds the array bounds.  Fix by assuming there will be an extra frag if buff->len > AQ_CFG_RX_HDR_SIZE, then all fragments are accounted for. And reusing the existing check to prevent the overflow earlier in the code path.  This crash occurred in production with an Aquantia AQC113 10G NIC.  Stack trace from production environment: ``` RIP: 0010:skb_add_rx_frag_netmem+0x29/0xd0 Code: 90 f3 0f 1e fa 0f 1f 44 00 00 48 89 f8 41 89 ca 48 89 d7 48 63 ce 8b 90 c0 00 00 00 48 c1 e1 04 48 01 ca 48 03 90 c8 00 00 00 <48> 89 7a 30 44 89 52 3c 44 89 42 38 40 f6 c7 01 75 74 48 89 fa 83 RSP: 0018:ffffa9bec02a8d50 EFLAGS: 00010287 RAX: ffff925b22e80a00 RBX: ffff925ad38d2700 RCX: fffffffe0a0c8000 RDX: ffff9258ea95bac0 RSI: ffff925ae0a0c800 RDI: 0000000000037a40 RBP: 0000000000000024 R08: 0000000000000000 R09: 0000000000000021 R10: 0000000000000848 R11: 0000000000000000 R12: ffffa9bec02a8e24 R13: ffff925ad8615570 R14: 0000000000000000 R15: ffff925b22e80a00 FS: 0000000000000000(0000) GS:ffff925e47880000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffff9258ea95baf0 CR3: 0000000166022004 CR4: 0000000000f72ef0 PKRU: 55555554 Call Trace: <IRQ> aq_ring_rx_clean+0x175/0xe60 [atlantic] ? aq_ring_rx_clean+0x14d/0xe60 [atlantic] ? aq_ring_tx_clean+0xdf/0x190 [atlantic] ? kmem_cache_free+0x348/0x450 ? aq_vec_poll+0x81/0x1d0 [atlantic] ? __napi_poll+0x28/0x1c0 ? net_rx_action+0x337/0x420 ```  Changes in v4: - Add Fixes: tag to satisfy patch validation requirements.  Changes in v3: - Fix by assuming there will be an extra frag if buff->len > AQ_CFG_RX_HDR_SIZE,   then all fragments are accounted for.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68302",
                                "url": "https://ubuntu.com/security/CVE-2025-68302",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sxgbe: fix potential NULL dereference in sxgbe_rx()  Currently, when skb is null, the driver prints an error and then dereferences skb on the next line.  To fix this, let's add a 'break' after the error message to switch to sxgbe_rx_refill(), which is similar to the approach taken by the other drivers in this particular case, e.g. calxeda with xgmac_rx().  Found during a code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68303",
                                "url": "https://ubuntu.com/security/CVE-2025-68303",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: intel: punit_ipc: fix memory corruption  This passes the address of the pointer \"&punit_ipcdev\" when the intent was to pass the pointer itself \"punit_ipcdev\" (without the ampersand). This means that the:  \tcomplete(&ipcdev->cmd_complete);  in intel_punit_ioc() will write to a wrong memory address corrupting it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68308",
                                "url": "https://ubuntu.com/security/CVE-2025-68308",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: kvaser_usb: leaf: Fix potential infinite loop in command parsers  The `kvaser_usb_leaf_wait_cmd()` and `kvaser_usb_leaf_read_bulk_callback` functions contain logic to zero-length commands. These commands are used to align data to the USB endpoint's wMaxPacketSize boundary.  The driver attempts to skip these placeholders by aligning the buffer position `pos` to the next packet boundary using `round_up()` function.  However, if zero-length command is found exactly on a packet boundary (i.e., `pos` is a multiple of wMaxPacketSize, including 0), `round_up` function will return the unchanged value of `pos`. This prevents `pos` to be increased, causing an infinite loop in the parsing logic.  This patch fixes this in the function by using `pos + 1` instead. This ensures that even if `pos` is on a boundary, the calculation is based on `pos + 1`, forcing `round_up()` to always return the next aligned boundary.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40257",
                                "url": "https://ubuntu.com/security/CVE-2025-40257",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fix a race in mptcp_pm_del_add_timer()  mptcp_pm_del_add_timer() can call sk_stop_timer_sync(sk, &entry->add_timer) while another might have free entry already, as reported by syzbot.  Add RCU protection to fix this issue.  Also change confusing add_timer variable with stop_timer boolean.  syzbot report:  BUG: KASAN: slab-use-after-free in __timer_delete_sync+0x372/0x3f0 kernel/time/timer.c:1616 Read of size 4 at addr ffff8880311e4150 by task kworker/1:1/44  CPU: 1 UID: 0 PID: 44 Comm: kworker/1:1 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 Workqueue: events mptcp_worker Call Trace:  <TASK>   dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120   print_address_description mm/kasan/report.c:378 [inline]   print_report+0xca/0x240 mm/kasan/report.c:482   kasan_report+0x118/0x150 mm/kasan/report.c:595   __timer_delete_sync+0x372/0x3f0 kernel/time/timer.c:1616   sk_stop_timer_sync+0x1b/0x90 net/core/sock.c:3631   mptcp_pm_del_add_timer+0x283/0x310 net/mptcp/pm.c:362   mptcp_incoming_options+0x1357/0x1f60 net/mptcp/options.c:1174   tcp_data_queue+0xca/0x6450 net/ipv4/tcp_input.c:5361   tcp_rcv_established+0x1335/0x2670 net/ipv4/tcp_input.c:6441   tcp_v4_do_rcv+0x98b/0xbf0 net/ipv4/tcp_ipv4.c:1931   tcp_v4_rcv+0x252a/0x2dc0 net/ipv4/tcp_ipv4.c:2374   ip_protocol_deliver_rcu+0x221/0x440 net/ipv4/ip_input.c:205   ip_local_deliver_finish+0x3bb/0x6f0 net/ipv4/ip_input.c:239   NF_HOOK+0x30c/0x3a0 include/linux/netfilter.h:318   NF_HOOK+0x30c/0x3a0 include/linux/netfilter.h:318   __netif_receive_skb_one_core net/core/dev.c:6079 [inline]   __netif_receive_skb+0x143/0x380 net/core/dev.c:6192   process_backlog+0x31e/0x900 net/core/dev.c:6544   __napi_poll+0xb6/0x540 net/core/dev.c:7594   napi_poll net/core/dev.c:7657 [inline]   net_rx_action+0x5f7/0xda0 net/core/dev.c:7784   handle_softirqs+0x22f/0x710 kernel/softirq.c:622   __do_softirq kernel/softirq.c:656 [inline]   __local_bh_enable_ip+0x1a0/0x2e0 kernel/softirq.c:302   mptcp_pm_send_ack net/mptcp/pm.c:210 [inline]  mptcp_pm_addr_send_ack+0x41f/0x500 net/mptcp/pm.c:-1   mptcp_pm_worker+0x174/0x320 net/mptcp/pm.c:1002   mptcp_worker+0xd5/0x1170 net/mptcp/protocol.c:2762   process_one_work kernel/workqueue.c:3263 [inline]   process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3346   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3427   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 44:   kasan_save_stack mm/kasan/common.c:56 [inline]   kasan_save_track+0x3e/0x80 mm/kasan/common.c:77   poison_kmalloc_redzone mm/kasan/common.c:400 [inline]   __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:417   kasan_kmalloc include/linux/kasan.h:262 [inline]   __kmalloc_cache_noprof+0x1ef/0x6c0 mm/slub.c:5748   kmalloc_noprof include/linux/slab.h:957 [inline]   mptcp_pm_alloc_anno_list+0x104/0x460 net/mptcp/pm.c:385   mptcp_pm_create_subflow_or_signal_addr+0xf9d/0x1360 net/mptcp/pm_kernel.c:355   mptcp_pm_nl_fully_established net/mptcp/pm_kernel.c:409 [inline]   __mptcp_pm_kernel_worker+0x417/0x1ef0 net/mptcp/pm_kernel.c:1529   mptcp_pm_worker+0x1ee/0x320 net/mptcp/pm.c:1008   mptcp_worker+0xd5/0x1170 net/mptcp/protocol.c:2762   process_one_work kernel/workqueue.c:3263 [inline]   process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3346   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3427   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  Freed by task 6630:   kasan_save_stack mm/kasan/common.c:56 [inline]   kasan_save_track+0x3e/0x80 mm/kasan/common.c:77   __kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:587   kasan_save_free_info mm/kasan/kasan.h:406 [inline]   poison_slab_object m ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68217",
                                "url": "https://ubuntu.com/security/CVE-2025-68217",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: pegasus-notetaker - fix potential out-of-bounds access  In the pegasus_notetaker driver, the pegasus_probe() function allocates the URB transfer buffer using the wMaxPacketSize value from the endpoint descriptor. An attacker can use a malicious USB descriptor to force the allocation of a very small buffer.  Subsequently, if the device sends an interrupt packet with a specific pattern (e.g., where the first byte is 0x80 or 0x42), the pegasus_parse_packet() function parses the packet without checking the allocated buffer size. This leads to an out-of-bounds memory access.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68204",
                                "url": "https://ubuntu.com/security/CVE-2025-68204",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: arm: scmi: Fix genpd leak on provider registration failure  If of_genpd_add_provider_onecell() fails during probe, the previously created generic power domains are not removed, leading to a memory leak and potential kernel crash later in genpd_debug_add().  Add proper error handling to unwind the initialized domains before returning from probe to ensure all resources are correctly released on failure.  Example crash trace observed without this fix:    | Unable to handle kernel paging request at virtual address fffffffffffffc70   | CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.18.0-rc1 #405 PREEMPT   | Hardware name: ARM LTD ARM Juno Development Platform/ARM Juno Development Platform   | pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)   | pc : genpd_debug_add+0x2c/0x160   | lr : genpd_debug_init+0x74/0x98   | Call trace:   |  genpd_debug_add+0x2c/0x160 (P)   |  genpd_debug_init+0x74/0x98   |  do_one_initcall+0xd0/0x2d8   |  do_initcall_level+0xa0/0x140   |  do_initcalls+0x60/0xa8   |  do_basic_setup+0x28/0x40   |  kernel_init_freeable+0xe8/0x170   |  kernel_init+0x2c/0x140   |  ret_from_fork+0x10/0x20",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68245",
                                "url": "https://ubuntu.com/security/CVE-2025-68245",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: netpoll: fix incorrect refcount handling causing incorrect cleanup  commit efa95b01da18 (\"netpoll: fix use after free\") incorrectly ignored the refcount and prematurely set dev->npinfo to NULL during netpoll cleanup, leading to improper behavior and memory leaks.  Scenario causing lack of proper cleanup:  1) A netpoll is associated with a NIC (e.g., eth0) and netdev->npinfo is    allocated, and refcnt = 1    - Keep in mind that npinfo is shared among all netpoll instances. In      this case, there is just one.  2) Another netpoll is also associated with the same NIC and    npinfo->refcnt += 1.    - Now dev->npinfo->refcnt = 2;    - There is just one npinfo associated to the netdev.  3) When the first netpolls goes to clean up:    - The first cleanup succeeds and clears np->dev->npinfo, ignoring      refcnt.      - It basically calls `RCU_INIT_POINTER(np->dev->npinfo, NULL);`    - Set dev->npinfo = NULL, without proper cleanup    - No ->ndo_netpoll_cleanup() is either called  4) Now the second target tries to clean up    - The second cleanup fails because np->dev->npinfo is already NULL.      * In this case, ops->ndo_netpoll_cleanup() was never called, and        the skb pool is not cleaned as well (for the second netpoll        instance)   - This leaks npinfo and skbpool skbs, which is clearly reported by     kmemleak.  Revert commit efa95b01da18 (\"netpoll: fix use after free\") and adds clarifying comments emphasizing that npinfo cleanup should only happen once the refcount reaches zero, ensuring stable and correct netpoll behavior.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-37354",
                                "url": "https://ubuntu.com/security/CVE-2024-37354",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix crash on racing fsync and size-extending write into prealloc  We have been seeing crashes on duplicate keys in btrfs_set_item_key_safe():    BTRFS critical (device vdb): slot 4 key (450 108 8192) new key (450 108 8192)   ------------[ cut here ]------------   kernel BUG at fs/btrfs/ctree.c:2620!   invalid opcode: 0000 [#1] PREEMPT SMP PTI   CPU: 0 PID: 3139 Comm: xfs_io Kdump: loaded Not tainted 6.9.0 #6   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014   RIP: 0010:btrfs_set_item_key_safe+0x11f/0x290 [btrfs]  With the following stack trace:    #0  btrfs_set_item_key_safe (fs/btrfs/ctree.c:2620:4)   #1  btrfs_drop_extents (fs/btrfs/file.c:411:4)   #2  log_one_extent (fs/btrfs/tree-log.c:4732:9)   #3  btrfs_log_changed_extents (fs/btrfs/tree-log.c:4955:9)   #4  btrfs_log_inode (fs/btrfs/tree-log.c:6626:9)   #5  btrfs_log_inode_parent (fs/btrfs/tree-log.c:7070:8)   #6  btrfs_log_dentry_safe (fs/btrfs/tree-log.c:7171:8)   #7  btrfs_sync_file (fs/btrfs/file.c:1933:8)   #8  vfs_fsync_range (fs/sync.c:188:9)   #9  vfs_fsync (fs/sync.c:202:9)   #10 do_fsync (fs/sync.c:212:9)   #11 __do_sys_fdatasync (fs/sync.c:225:9)   #12 __se_sys_fdatasync (fs/sync.c:223:1)   #13 __x64_sys_fdatasync (fs/sync.c:223:1)   #14 do_syscall_x64 (arch/x86/entry/common.c:52:14)   #15 do_syscall_64 (arch/x86/entry/common.c:83:7)   #16 entry_SYSCALL_64+0xaf/0x14c (arch/x86/entry/entry_64.S:121)  So we're logging a changed extent from fsync, which is splitting an extent in the log tree. But this split part already exists in the tree, triggering the BUG().  This is the state of the log tree at the time of the crash, dumped with drgn (https://github.com/osandov/drgn/blob/main/contrib/btrfs_tree.py) to get more details than btrfs_print_leaf() gives us:    >>> print_extent_buffer(prog.crashed_thread().stack_trace()[0][\"eb\"])   leaf 33439744 level 0 items 72 generation 9 owner 18446744073709551610   leaf 33439744 flags 0x100000000000000   fs uuid e5bd3946-400c-4223-8923-190ef1f18677   chunk uuid d58cb17e-6d02-494a-829a-18b7d8a399da           item 0 key (450 INODE_ITEM 0) itemoff 16123 itemsize 160                   generation 7 transid 9 size 8192 nbytes 8473563889606862198                   block group 0 mode 100600 links 1 uid 0 gid 0 rdev 0                   sequence 204 flags 0x10(PREALLOC)                   atime 1716417703.220000000 (2024-05-22 15:41:43)                   ctime 1716417704.983333333 (2024-05-22 15:41:44)                   mtime 1716417704.983333333 (2024-05-22 15:41:44)                   otime 17592186044416.000000000 (559444-03-08 01:40:16)           item 1 key (450 INODE_REF 256) itemoff 16110 itemsize 13                   index 195 namelen 3 name: 193           item 2 key (450 XATTR_ITEM 1640047104) itemoff 16073 itemsize 37                   location key (0 UNKNOWN.0 0) type XATTR                   transid 7 data_len 1 name_len 6                   name: user.a                   data a           item 3 key (450 EXTENT_DATA 0) itemoff 16020 itemsize 53                   generation 9 type 1 (regular)                   extent data disk byte 303144960 nr 12288                   extent data offset 0 nr 4096 ram 12288                   extent compression 0 (none)           item 4 key (450 EXTENT_DATA 4096) itemoff 15967 itemsize 53                   generation 9 type 2 (prealloc)                   prealloc data disk byte 303144960 nr 12288                   prealloc data offset 4096 nr 8192           item 5 key (450 EXTENT_DATA 8192) itemoff 15914 itemsize 53                   generation 9 type 2 (prealloc)                   prealloc data disk byte 303144960 nr 12288                   prealloc data offset 8192 nr 4096   ...  So the real problem happened earlier: notice that items 4 (4k-12k) and 5 (8k-12k) overlap. Both are prealloc extents. Item 4 straddles i_size and item 5 starts at i_size.  Here is the state of ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-06-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68220",
                                "url": "https://ubuntu.com/security/CVE-2025-68220",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: ethernet: ti: netcp: Standardize knav_dma_open_channel to return NULL on error  Make knav_dma_open_channel consistently return NULL on error instead of ERR_PTR. Currently the header include/linux/soc/ti/knav_dma.h returns NULL when the driver is disabled, but the driver implementation does not even return NULL or ERR_PTR on failure, causing inconsistency in the users. This results in a crash in netcp_free_navigator_resources as followed (trimmed):  Unhandled fault: alignment exception (0x221) at 0xfffffff2 [fffffff2] *pgd=80000800207003, *pmd=82ffda003, *pte=00000000 Internal error: : 221 [#1] SMP ARM Modules linked in: CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.17.0-rc7 #1 NONE Hardware name: Keystone PC is at knav_dma_close_channel+0x30/0x19c LR is at netcp_free_navigator_resources+0x2c/0x28c  [... TRIM...]  Call trace:  knav_dma_close_channel from netcp_free_navigator_resources+0x2c/0x28c  netcp_free_navigator_resources from netcp_ndo_open+0x430/0x46c  netcp_ndo_open from __dev_open+0x114/0x29c  __dev_open from __dev_change_flags+0x190/0x208  __dev_change_flags from netif_change_flags+0x1c/0x58  netif_change_flags from dev_change_flags+0x38/0xa0  dev_change_flags from ip_auto_config+0x2c4/0x11f0  ip_auto_config from do_one_initcall+0x58/0x200  do_one_initcall from kernel_init_freeable+0x1cc/0x238  kernel_init_freeable from kernel_init+0x1c/0x12c  kernel_init from ret_from_fork+0x14/0x38 [... TRIM...]  Standardize the error handling by making the function return NULL on all error conditions. The API is used in just the netcp_core.c so the impact is limited.  Note, this change, in effect reverts commit 5b6cb43b4d62 (\"net: ethernet: ti: netcp_core: return error while dma channel open issue\"), but provides a less error prone implementation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40272",
                                "url": "https://ubuntu.com/security/CVE-2025-40272",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/secretmem: fix use-after-free race in fault handler  When a page fault occurs in a secret memory file created with `memfd_secret(2)`, the kernel will allocate a new folio for it, mark the underlying page as not-present in the direct map, and add it to the file mapping.  If two tasks cause a fault in the same page concurrently, both could end up allocating a folio and removing the page from the direct map, but only one would succeed in adding the folio to the file mapping.  The task that failed undoes the effects of its attempt by (a) freeing the folio again and (b) putting the page back into the direct map.  However, by doing these two operations in this order, the page becomes available to the allocator again before it is placed back in the direct mapping.  If another task attempts to allocate the page between (a) and (b), and the kernel tries to access it via the direct map, it would result in a supervisor not-present page fault.  Fix the ordering to restore the direct map before the folio is freed.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40248",
                                "url": "https://ubuntu.com/security/CVE-2025-40248",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock: Ignore signal/timeout on connect() if already established  During connect(), acting on a signal/timeout by disconnecting an already established socket leads to several issues:  1. connect() invoking vsock_transport_cancel_pkt() ->    virtio_transport_purge_skbs() may race with sendmsg() invoking    virtio_transport_get_credit(). This results in a permanently elevated    `vvs->bytes_unsent`. Which, in turn, confuses the SOCK_LINGER handling.  2. connect() resetting a connected socket's state may race with socket    being placed in a sockmap. A disconnected socket remaining in a sockmap    breaks sockmap's assumptions. And gives rise to WARNs.  3. connect() transitioning SS_CONNECTED -> SS_UNCONNECTED allows for a    transport change/drop after TCP_ESTABLISHED. Which poses a problem for    any simultaneous sendmsg() or connect() and may result in a    use-after-free/null-ptr-deref.  Do not disconnect socket on signal/timeout. Keep the logic for unconnected sockets: they don't linger, can't be placed in a sockmap, are rejected by sendmsg().  [1]: https://lore.kernel.org/netdev/e07fd95c-9a38-4eea-9638-133e38c2ec9b@rbox.co/ [2]: https://lore.kernel.org/netdev/20250317-vsock-trans-signal-race-v4-0-fc8837f3f1d4@rbox.co/ [3]: https://lore.kernel.org/netdev/60f1b7db-3099-4f6a-875e-af9f6ef194f6@rbox.co/",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40252",
                                "url": "https://ubuntu.com/security/CVE-2025-40252",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: qlogic/qede: fix potential out-of-bounds read in qede_tpa_cont() and qede_tpa_end()  The loops in 'qede_tpa_cont()' and 'qede_tpa_end()', iterate over 'cqe->len_list[]' using only a zero-length terminator as the stopping condition. If the terminator was missing or malformed, the loop could run past the end of the fixed-size array.  Add an explicit bound check using ARRAY_SIZE() in both loops to prevent a potential out-of-bounds access.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40253",
                                "url": "https://ubuntu.com/security/CVE-2025-40253",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  s390/ctcm: Fix double-kfree  The function 'mpc_rcvd_sweep_req(mpcginfo)' is called conditionally from function 'ctcmpc_unpack_skb'. It frees passed mpcginfo. After that a call to function 'kfree' in function 'ctcmpc_unpack_skb' frees it again.  Remove 'kfree' call in function 'mpc_rcvd_sweep_req(mpcginfo)'.  Bug detected by the clang static analyzer.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40254",
                                "url": "https://ubuntu.com/security/CVE-2025-40254",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: openvswitch: remove never-working support for setting nsh fields  The validation of the set(nsh(...)) action is completely wrong. It runs through the nsh_key_put_from_nlattr() function that is the same function that validates NSH keys for the flow match and the push_nsh() action.  However, the set(nsh(...)) has a very different memory layout.  Nested attributes in there are doubled in size in case of the masked set().  That makes proper validation impossible.  There is also confusion in the code between the 'masked' flag, that says that the nested attributes are doubled in size containing both the value and the mask, and the 'is_mask' that says that the value we're parsing is the mask.  This is causing kernel crash on trying to write into mask part of the match with SW_FLOW_KEY_PUT() during validation, while validate_nsh() doesn't allocate any memory for it:    BUG: kernel NULL pointer dereference, address: 0000000000000018   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 1c2383067 P4D 1c2383067 PUD 20b703067 PMD 0   Oops: Oops: 0000 [#1] SMP NOPTI   CPU: 8 UID: 0 Kdump: loaded Not tainted 6.17.0-rc4+ #107 PREEMPT(voluntary)   RIP: 0010:nsh_key_put_from_nlattr+0x19d/0x610 [openvswitch]   Call Trace:    <TASK>    validate_nsh+0x60/0x90 [openvswitch]    validate_set.constprop.0+0x270/0x3c0 [openvswitch]    __ovs_nla_copy_actions+0x477/0x860 [openvswitch]    ovs_nla_copy_actions+0x8d/0x100 [openvswitch]    ovs_packet_cmd_execute+0x1cc/0x310 [openvswitch]    genl_family_rcv_msg_doit+0xdb/0x130    genl_family_rcv_msg+0x14b/0x220    genl_rcv_msg+0x47/0xa0    netlink_rcv_skb+0x53/0x100    genl_rcv+0x24/0x40    netlink_unicast+0x280/0x3b0    netlink_sendmsg+0x1f7/0x430    ____sys_sendmsg+0x36b/0x3a0    ___sys_sendmsg+0x87/0xd0    __sys_sendmsg+0x6d/0xd0    do_syscall_64+0x7b/0x2c0    entry_SYSCALL_64_after_hwframe+0x76/0x7e  The third issue with this process is that while trying to convert the non-masked set into masked one, validate_set() copies and doubles the size of the OVS_KEY_ATTR_NSH as if it didn't have any nested attributes.  It should be copying each nested attribute and doubling them in size independently.  And the process must be properly reversed during the conversion back from masked to a non-masked variant during the flow dump.  In the end, the only two outcomes of trying to use this action are either validation failure or a kernel crash.  And if somehow someone manages to install a flow with such an action, it will most definitely not do what it is supposed to, since all the keys and the masks are mixed up.  Fixing all the issues is a complex task as it requires re-writing most of the validation code.  Given that and the fact that this functionality never worked since introduction, let's just remove it altogether.  It's better to re-introduce it later with a proper implementation instead of trying to fix it in stable releases.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40258",
                                "url": "https://ubuntu.com/security/CVE-2025-40258",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fix race condition in mptcp_schedule_work()  syzbot reported use-after-free in mptcp_schedule_work() [1]  Issue here is that mptcp_schedule_work() schedules a work, then gets a refcount on sk->sk_refcnt if the work was scheduled. This refcount will be released by mptcp_worker().  [A] if (schedule_work(...)) { [B]     sock_hold(sk);         return true;     }  Problem is that mptcp_worker() can run immediately and complete before [B]  We need instead :      sock_hold(sk);     if (schedule_work(...))         return true;     sock_put(sk);  [1] refcount_t: addition on 0; use-after-free.  WARNING: CPU: 1 PID: 29 at lib/refcount.c:25 refcount_warn_saturate+0xfa/0x1d0 lib/refcount.c:25 Call Trace:  <TASK>  __refcount_add include/linux/refcount.h:-1 [inline]   __refcount_inc include/linux/refcount.h:366 [inline]   refcount_inc include/linux/refcount.h:383 [inline]   sock_hold include/net/sock.h:816 [inline]   mptcp_schedule_work+0x164/0x1a0 net/mptcp/protocol.c:943   mptcp_tout_timer+0x21/0xa0 net/mptcp/protocol.c:2316   call_timer_fn+0x17e/0x5f0 kernel/time/timer.c:1747   expire_timers kernel/time/timer.c:1798 [inline]   __run_timers kernel/time/timer.c:2372 [inline]   __run_timer_base+0x648/0x970 kernel/time/timer.c:2384   run_timer_base kernel/time/timer.c:2393 [inline]   run_timer_softirq+0xb7/0x180 kernel/time/timer.c:2403   handle_softirqs+0x22f/0x710 kernel/softirq.c:622   __do_softirq kernel/softirq.c:656 [inline]   run_ktimerd+0xcf/0x190 kernel/softirq.c:1138   smpboot_thread_fn+0x542/0xa60 kernel/smpboot.c:160   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68229",
                                "url": "https://ubuntu.com/security/CVE-2025-68229",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: tcm_loop: Fix segfault in tcm_loop_tpg_address_show()  If the allocation of tl_hba->sh fails in tcm_loop_driver_probe() and we attempt to dereference it in tcm_loop_tpg_address_show() we will get a segfault, see below for an example. So, check tl_hba->sh before dereferencing it.    Unable to allocate struct scsi_host   BUG: kernel NULL pointer dereference, address: 0000000000000194   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 0 P4D 0   Oops: 0000 [#1] PREEMPT SMP NOPTI   CPU: 1 PID: 8356 Comm: tokio-runtime-w Not tainted 6.6.104.2-4.azl3 #1   Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.1 09/28/2024   RIP: 0010:tcm_loop_tpg_address_show+0x2e/0x50 [tcm_loop] ...   Call Trace:    <TASK>    configfs_read_iter+0x12d/0x1d0 [configfs]    vfs_read+0x1b5/0x300    ksys_read+0x6f/0xf0 ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40259",
                                "url": "https://ubuntu.com/security/CVE-2025-40259",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: sg: Do not sleep in atomic context  sg_finish_rem_req() calls blk_rq_unmap_user(). The latter function may sleep. Hence, call sg_finish_rem_req() with interrupts enabled instead of disabled.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40261",
                                "url": "https://ubuntu.com/security/CVE-2025-40261",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()  nvme_fc_delete_assocation() waits for pending I/O to complete before returning, and an error can cause ->ioerr_work to be queued after cancel_work_sync() had been called.  Move the call to cancel_work_sync() to be after nvme_fc_delete_association() to ensure ->ioerr_work is not running when the nvme_fc_ctrl object is freed.  Otherwise the following can occur:  [ 1135.911754] list_del corruption, ff2d24c8093f31f8->next is NULL [ 1135.917705] ------------[ cut here ]------------ [ 1135.922336] kernel BUG at lib/list_debug.c:52! [ 1135.926784] Oops: invalid opcode: 0000 [#1] SMP NOPTI [ 1135.931851] CPU: 48 UID: 0 PID: 726 Comm: kworker/u449:23 Kdump: loaded Not tainted 6.12.0 #1 PREEMPT(voluntary) [ 1135.943490] Hardware name: Dell Inc. PowerEdge R660/0HGTK9, BIOS 2.5.4 01/16/2025 [ 1135.950969] Workqueue:  0x0 (nvme-wq) [ 1135.954673] RIP: 0010:__list_del_entry_valid_or_report.cold+0xf/0x6f [ 1135.961041] Code: c7 c7 98 68 72 94 e8 26 45 fe ff 0f 0b 48 c7 c7 70 68 72 94 e8 18 45 fe ff 0f 0b 48 89 fe 48 c7 c7 80 69 72 94 e8 07 45 fe ff <0f> 0b 48 89 d1 48 c7 c7 a0 6a 72 94 48 89 c2 e8 f3 44 fe ff 0f 0b [ 1135.979788] RSP: 0018:ff579b19482d3e50 EFLAGS: 00010046 [ 1135.985015] RAX: 0000000000000033 RBX: ff2d24c8093f31f0 RCX: 0000000000000000 [ 1135.992148] RDX: 0000000000000000 RSI: ff2d24d6bfa1d0c0 RDI: ff2d24d6bfa1d0c0 [ 1135.999278] RBP: ff2d24c8093f31f8 R08: 0000000000000000 R09: ffffffff951e2b08 [ 1136.006413] R10: ffffffff95122ac8 R11: 0000000000000003 R12: ff2d24c78697c100 [ 1136.013546] R13: fffffffffffffff8 R14: 0000000000000000 R15: ff2d24c78697c0c0 [ 1136.020677] FS:  0000000000000000(0000) GS:ff2d24d6bfa00000(0000) knlGS:0000000000000000 [ 1136.028765] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1136.034510] CR2: 00007fd207f90b80 CR3: 000000163ea22003 CR4: 0000000000f73ef0 [ 1136.041641] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 1136.048776] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400 [ 1136.055910] PKRU: 55555554 [ 1136.058623] Call Trace: [ 1136.061074]  <TASK> [ 1136.063179]  ? show_trace_log_lvl+0x1b0/0x2f0 [ 1136.067540]  ? show_trace_log_lvl+0x1b0/0x2f0 [ 1136.071898]  ? move_linked_works+0x4a/0xa0 [ 1136.075998]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.081744]  ? __die_body.cold+0x8/0x12 [ 1136.085584]  ? die+0x2e/0x50 [ 1136.088469]  ? do_trap+0xca/0x110 [ 1136.091789]  ? do_error_trap+0x65/0x80 [ 1136.095543]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.101289]  ? exc_invalid_op+0x50/0x70 [ 1136.105127]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.110874]  ? asm_exc_invalid_op+0x1a/0x20 [ 1136.115059]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.120806]  move_linked_works+0x4a/0xa0 [ 1136.124733]  worker_thread+0x216/0x3a0 [ 1136.128485]  ? __pfx_worker_thread+0x10/0x10 [ 1136.132758]  kthread+0xfa/0x240 [ 1136.135904]  ? __pfx_kthread+0x10/0x10 [ 1136.139657]  ret_from_fork+0x31/0x50 [ 1136.143236]  ? __pfx_kthread+0x10/0x10 [ 1136.146988]  ret_from_fork_asm+0x1a/0x30 [ 1136.150915]  </TASK>",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40262",
                                "url": "https://ubuntu.com/security/CVE-2025-40262",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: imx_sc_key - fix memory corruption on unload  This is supposed to be \"priv\" but we accidentally pass \"&priv\" which is an address in the stack and so it will lead to memory corruption when the imx_sc_key_action() function is called.  Remove the &.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40263",
                                "url": "https://ubuntu.com/security/CVE-2025-40263",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: cros_ec_keyb - fix an invalid memory access  If cros_ec_keyb_register_matrix() isn't called (due to `buttons_switches_only`) in cros_ec_keyb_probe(), `ckdev->idev` remains NULL.  An invalid memory access is observed in cros_ec_keyb_process() when receiving an EC_MKBP_EVENT_KEY_MATRIX event in cros_ec_keyb_work() in such case.    Unable to handle kernel read from unreadable memory at virtual address 0000000000000028   ...   x3 : 0000000000000000 x2 : 0000000000000000   x1 : 0000000000000000 x0 : 0000000000000000   Call trace:   input_event   cros_ec_keyb_work   blocking_notifier_call_chain   ec_irq_thread  It's still unknown about why the kernel receives such malformed event, in any cases, the kernel shouldn't access `ckdev->idev` and friends if the driver doesn't intend to initialize them.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40264",
                                "url": "https://ubuntu.com/security/CVE-2025-40264",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  be2net: pass wrb_params in case of OS2BMC  be_insert_vlan_in_pkt() is called with the wrb_params argument being NULL at be_send_pkt_to_bmc() call site.  This may lead to dereferencing a NULL pointer when processing a workaround for specific packet, as commit bc0c3405abbb (\"be2net: fix a Tx stall bug caused by a specific ipv6 packet\") states.  The correct way would be to pass the wrb_params from be_xmit().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68238",
                                "url": "https://ubuntu.com/security/CVE-2025-68238",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mtd: rawnand: cadence: fix DMA device NULL pointer dereference  The DMA device pointer `dma_dev` was being dereferenced before ensuring that `cdns_ctrl->dmac` is properly initialized.  Move the assignment of `dma_dev` after successfully acquiring the DMA channel to ensure the pointer is valid before use.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68734",
                                "url": "https://ubuntu.com/security/CVE-2025-68734",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  isdn: mISDN: hfcsusb: fix memory leak in hfcsusb_probe()  In hfcsusb_probe(), the memory allocated for ctrl_urb gets leaked when setup_instance() fails with an error code. Fix that by freeing the urb before freeing the hw structure. Also change the error paths to use the goto ladder style.  Compile tested only. Issue found using a prototype static analysis tool.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40269",
                                "url": "https://ubuntu.com/security/CVE-2025-40269",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix potential overflow of PCM transfer buffer  The PCM stream data in USB-audio driver is transferred over USB URB packet buffers, and each packet size is determined dynamically.  The packet sizes are limited by some factors such as wMaxPacketSize USB descriptor.  OTOH, in the current code, the actually used packet sizes are determined only by the rate and the PPS, which may be bigger than the size limit above.  This results in a buffer overflow, as reported by syzbot.  Basically when the limit is smaller than the calculated packet size, it implies that something is wrong, most likely a weird USB descriptor.  So the best option would be just to return an error at the parameter setup time before doing any further operations.  This patch introduces such a sanity check, and returns -EINVAL when the packet size is greater than maxpacksize.  The comparison with ep->packsize[1] alone should suffice since it's always equal or greater than ep->packsize[0].",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40271",
                                "url": "https://ubuntu.com/security/CVE-2025-40271",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fs/proc: fix uaf in proc_readdir_de()  Pde is erased from subdir rbtree through rb_erase(), but not set the node to EMPTY, which may result in uaf access.  We should use RB_CLEAR_NODE() set the erased node to EMPTY, then pde_subdir_next() will return NULL to avoid uaf access.  We found an uaf issue while using stress-ng testing, need to run testcase getdent and tun in the same time.  The steps of the issue is as follows:  1) use getdent to traverse dir /proc/pid/net/dev_snmp6/, and current    pde is tun3;  2) in the [time windows] unregister netdevice tun3 and tun2, and erase    them from rbtree.  erase tun3 first, and then erase tun2.  the    pde(tun2) will be released to slab;  3) continue to getdent process, then pde_subdir_next() will return    pde(tun2) which is released, it will case uaf access.  CPU 0                                      |    CPU 1 ------------------------------------------------------------------------- traverse dir /proc/pid/net/dev_snmp6/      |  unregister_netdevice(tun->dev)   //tun3 tun2 sys_getdents64()                           |   iterate_dir()                            |     proc_readdir()                         |       proc_readdir_de()                    |     snmp6_unregister_dev()         pde_get(de);                       |       proc_remove()         read_unlock(&proc_subdir_lock);    |         remove_proc_subtree()                                            |          write_lock(&proc_subdir_lock);         [time window]                      |          rb_erase(&root->subdir_node, &parent->subdir);                                            |          write_unlock(&proc_subdir_lock);         read_lock(&proc_subdir_lock);      |         next = pde_subdir_next(de);        |         pde_put(de);                       |         de = next;    //UAF                |  rbtree of dev_snmp6                         |                     pde(tun3)                      /    \\                   NULL  pde(tun2)",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68241",
                                "url": "https://ubuntu.com/security/CVE-2025-68241",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: route: Prevent rt_bind_exception() from rebinding stale fnhe  The sit driver's packet transmission path calls: sit_tunnel_xmit() -> update_or_create_fnhe(), which lead to fnhe_remove_oldest() being called to delete entries exceeding FNHE_RECLAIM_DEPTH+random.  The race window is between fnhe_remove_oldest() selecting fnheX for deletion and the subsequent kfree_rcu(). During this time, the concurrent path's __mkroute_output() -> find_exception() can fetch the soon-to-be-deleted fnheX, and rt_bind_exception() then binds it with a new dst using a dst_hold(). When the original fnheX is freed via RCU, the dst reference remains permanently leaked.  CPU 0                             CPU 1 __mkroute_output()   find_exception() [fnheX]                                   update_or_create_fnhe()                                     fnhe_remove_oldest() [fnheX]   rt_bind_exception() [bind dst]                                   RCU callback [fnheX freed, dst leak]  This issue manifests as a device reference count leak and a warning in dmesg when unregistering the net device:    unregister_netdevice: waiting for sitX to become free. Usage count = N  Ido Schimmel provided the simple test validation method [1].  The fix clears 'oldest->fnhe_daddr' before calling fnhe_flush_routes(). Since rt_bind_exception() checks this field, setting it to zero prevents the stale fnhe from being reused and bound to a new dst just before it is freed.  [1] ip netns add ns1 ip -n ns1 link set dev lo up ip -n ns1 address add 192.0.2.1/32 dev lo ip -n ns1 link add name dummy1 up type dummy ip -n ns1 route add 192.0.2.2/32 dev dummy1 ip -n ns1 link add name gretap1 up arp off type gretap \\     local 192.0.2.1 remote 192.0.2.2 ip -n ns1 route add 198.51.0.0/16 dev gretap1 taskset -c 0 ip netns exec ns1 mausezahn gretap1 \\     -A 198.51.100.1 -B 198.51.0.0/16 -t udp -p 1000 -c 0 -q & taskset -c 2 ip netns exec ns1 mausezahn gretap1 \\     -A 198.51.100.1 -B 198.51.0.0/16 -t udp -p 1000 -c 0 -q & sleep 10 ip netns pids ns1 | xargs kill ip netns del ns1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40273",
                                "url": "https://ubuntu.com/security/CVE-2025-40273",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: free copynotify stateid in nfs4_free_ol_stateid()  Typically copynotify stateid is freed either when parent's stateid is being close/freed or in nfsd4_laundromat if the stateid hasn't been used in a lease period.  However, in case when the server got an OPEN (which created a parent stateid), followed by a COPY_NOTIFY using that stateid, followed by a client reboot. New client instance while doing CREATE_SESSION would force expire previous state of this client. It leads to the open state being freed thru release_openowner-> nfs4_free_ol_stateid() and it finds that it still has copynotify stateid associated with it. We currently print a warning and is triggerred  WARNING: CPU: 1 PID: 8858 at fs/nfsd/nfs4state.c:1550 nfs4_free_ol_stateid+0xb0/0x100 [nfsd]  This patch, instead, frees the associated copynotify stateid here.  If the parent stateid is freed (without freeing the copynotify stateids associated with it), it leads to the list corruption when laundromat ends up freeing the copynotify state later.  [ 1626.839430] Internal error: Oops - BUG: 00000000f2000800 [#1]  SMP [ 1626.842828] Modules linked in: nfnetlink_queue nfnetlink_log bluetooth cfg80211 rpcrdma rdma_cm iw_cm ib_cm ib_core nfsd nfs_acl lockd grace nfs_localio ext4 crc16 mbcache jbd2 overlay uinput snd_seq_dummy snd_hrtimer qrtr rfkill vfat fat uvcvideo snd_hda_codec_generic videobuf2_vmalloc videobuf2_memops snd_hda_intel uvc snd_intel_dspcfg videobuf2_v4l2 videobuf2_common snd_hda_codec snd_hda_core videodev snd_hwdep snd_seq mc snd_seq_device snd_pcm snd_timer snd soundcore sg loop auth_rpcgss vsock_loopback vmw_vsock_virtio_transport_common vmw_vsock_vmci_transport vmw_vmci vsock xfs 8021q garp stp llc mrp nvme ghash_ce e1000e nvme_core sr_mod nvme_keyring nvme_auth cdrom vmwgfx drm_ttm_helper ttm sunrpc dm_mirror dm_region_hash dm_log iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi fuse dm_multipath dm_mod nfnetlink [ 1626.855594] CPU: 2 UID: 0 PID: 199 Comm: kworker/u24:33 Kdump: loaded Tainted: G    B   W           6.17.0-rc7+ #22 PREEMPT(voluntary) [ 1626.857075] Tainted: [B]=BAD_PAGE, [W]=WARN [ 1626.857573] Hardware name: VMware, Inc. VMware20,1/VBSA, BIOS VMW201.00V.24006586.BA64.2406042154 06/04/2024 [ 1626.858724] Workqueue: nfsd4 laundromat_main [nfsd] [ 1626.859304] pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) [ 1626.860010] pc : __list_del_entry_valid_or_report+0x148/0x200 [ 1626.860601] lr : __list_del_entry_valid_or_report+0x148/0x200 [ 1626.861182] sp : ffff8000881d7a40 [ 1626.861521] x29: ffff8000881d7a40 x28: 0000000000000018 x27: ffff0000c2a98200 [ 1626.862260] x26: 0000000000000600 x25: 0000000000000000 x24: ffff8000881d7b20 [ 1626.862986] x23: ffff0000c2a981e8 x22: 1fffe00012410e7d x21: ffff0000920873e8 [ 1626.863701] x20: ffff0000920873e8 x19: ffff000086f22998 x18: 0000000000000000 [ 1626.864421] x17: 20747562202c3839 x16: 3932326636383030 x15: 3030666666662065 [ 1626.865092] x14: 6220646c756f6873 x13: 0000000000000001 x12: ffff60004fd9e4a3 [ 1626.865713] x11: 1fffe0004fd9e4a2 x10: ffff60004fd9e4a2 x9 : dfff800000000000 [ 1626.866320] x8 : 00009fffb0261b5e x7 : ffff00027ecf2513 x6 : 0000000000000001 [ 1626.866938] x5 : ffff00027ecf2510 x4 : ffff60004fd9e4a3 x3 : 0000000000000000 [ 1626.867553] x2 : 0000000000000000 x1 : ffff000096069640 x0 : 000000000000006d [ 1626.868167] Call trace: [ 1626.868382]  __list_del_entry_valid_or_report+0x148/0x200 (P) [ 1626.868876]  _free_cpntf_state_locked+0xd0/0x268 [nfsd] [ 1626.869368]  nfs4_laundromat+0x6f8/0x1058 [nfsd] [ 1626.869813]  laundromat_main+0x24/0x60 [nfsd] [ 1626.870231]  process_one_work+0x584/0x1050 [ 1626.870595]  worker_thread+0x4c4/0xc60 [ 1626.870893]  kthread+0x2f8/0x398 [ 1626.871146]  ret_from_fork+0x10/0x20 [ 1626.871422] Code: aa1303e1 aa1403e3 910e8000 97bc55d7 (d4210000) [ 1626.871892] SMP: stopping secondary CPUs",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40040",
                                "url": "https://ubuntu.com/security/CVE-2025-40040",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/ksm: fix flag-dropping behavior in ksm_madvise  syzkaller discovered the following crash: (kernel BUG)  [   44.607039] ------------[ cut here ]------------ [   44.607422] kernel BUG at mm/userfaultfd.c:2067! [   44.608148] Oops: invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN NOPTI [   44.608814] CPU: 1 UID: 0 PID: 2475 Comm: reproducer Not tainted 6.16.0-rc6 #1 PREEMPT(none) [   44.609635] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [   44.610695] RIP: 0010:userfaultfd_release_all+0x3a8/0x460  <snip other registers, drop unreliable trace>  [   44.617726] Call Trace: [   44.617926]  <TASK> [   44.619284]  userfaultfd_release+0xef/0x1b0 [   44.620976]  __fput+0x3f9/0xb60 [   44.621240]  fput_close_sync+0x110/0x210 [   44.622222]  __x64_sys_close+0x8f/0x120 [   44.622530]  do_syscall_64+0x5b/0x2f0 [   44.622840]  entry_SYSCALL_64_after_hwframe+0x76/0x7e [   44.623244] RIP: 0033:0x7f365bb3f227  Kernel panics because it detects UFFD inconsistency during userfaultfd_release_all().  Specifically, a VMA which has a valid pointer to vma->vm_userfaultfd_ctx, but no UFFD flags in vma->vm_flags.  The inconsistency is caused in ksm_madvise(): when user calls madvise() with MADV_UNMEARGEABLE on a VMA that is registered for UFFD in MINOR mode, it accidentally clears all flags stored in the upper 32 bits of vma->vm_flags.  Assuming x86_64 kernel build, unsigned long is 64-bit and unsigned int and int are 32-bit wide.  This setup causes the following mishap during the &= ~VM_MERGEABLE assignment.  VM_MERGEABLE is a 32-bit constant of type unsigned int, 0x8000'0000. After ~ is applied, it becomes 0x7fff'ffff unsigned int, which is then promoted to unsigned long before the & operation.  This promotion fills upper 32 bits with leading 0s, as we're doing unsigned conversion (and even for a signed conversion, this wouldn't help as the leading bit is 0). & operation thus ends up AND-ing vm_flags with 0x0000'0000'7fff'ffff instead of intended 0xffff'ffff'7fff'ffff and hence accidentally clears the upper 32-bits of its value.  Fix it by changing `VM_MERGEABLE` constant to unsigned long, using the BIT() macro.  Note: other VM_* flags are not affected: This only happens to the VM_MERGEABLE flag, as the other VM_* flags are all constants of type int and after ~ operation, they end up with leading 1 and are thus converted to unsigned long with leading 1s.  Note 2: After commit 31defc3b01d9 (\"userfaultfd: remove (VM_)BUG_ON()s\"), this is no longer a kernel BUG, but a WARNING at the same place:  [   45.595973] WARNING: CPU: 1 PID: 2474 at mm/userfaultfd.c:2067  but the root-cause (flag-drop) remains the same.  [akpm@linux-foundation.org: rust bindgen wasn't able to handle BIT(), from Miguel]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-28 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68200",
                                "url": "https://ubuntu.com/security/CVE-2025-68200",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Add bpf_prog_run_data_pointers()  syzbot found that cls_bpf_classify() is able to change tc_skb_cb(skb)->drop_reason triggering a warning in sk_skb_reason_drop().  WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 __sk_skb_reason_drop net/core/skbuff.c:1189 [inline] WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 sk_skb_reason_drop+0x76/0x170 net/core/skbuff.c:1214  struct tc_skb_cb has been added in commit ec624fe740b4 (\"net/sched: Extend qdisc control block with tc control block\"), which added a wrong interaction with db58ba459202 (\"bpf: wire in data and data_end for cls_act_bpf\").  drop_reason was added later.  Add bpf_prog_run_data_pointers() helper to save/restore the net_sched storage colliding with BPF data_meta/data_end.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40275",
                                "url": "https://ubuntu.com/security/CVE-2025-40275",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix NULL pointer dereference in snd_usb_mixer_controls_badd  In snd_usb_create_streams(), for UAC version 3 devices, the Interface Association Descriptor (IAD) is retrieved via usb_ifnum_to_if(). If this call fails, a fallback routine attempts to obtain the IAD from the next interface and sets a BADD profile. However, snd_usb_mixer_controls_badd() assumes that the IAD retrieved from usb_ifnum_to_if() is always valid, without performing a NULL check. This can lead to a NULL pointer dereference when usb_ifnum_to_if() fails to find the interface descriptor.  This patch adds a NULL pointer check after calling usb_ifnum_to_if() in snd_usb_mixer_controls_badd() to prevent the dereference.  This issue was discovered by syzkaller, which triggered the bug by sending a crafted USB device descriptor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40277",
                                "url": "https://ubuntu.com/security/CVE-2025-40277",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vmwgfx: Validate command header size against SVGA_CMD_MAX_DATASIZE  This data originates from userspace and is used in buffer offset calculations which could potentially overflow causing an out-of-bounds access.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40278",
                                "url": "https://ubuntu.com/security/CVE-2025-40278",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak  Fix a KMSAN kernel-infoleak detected  by the syzbot .  [net?] KMSAN: kernel-infoleak in __skb_datagram_iter  In tcf_ife_dump(), the variable 'opt' was partially initialized using a designatied initializer. While the padding bytes are reamined uninitialized. nla_put() copies the entire structure into a netlink message, these uninitialized bytes leaked to userspace.  Initialize the structure with memset before assigning its fields to ensure all members and padding are cleared prior to beign copied.  This change silences the KMSAN report and prevents potential information leaks from the kernel memory.  This fix has been tested and validated by syzbot. This patch closes the bug reported at the following syzkaller link and ensures no infoleak.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40279",
                                "url": "https://ubuntu.com/security/CVE-2025-40279",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: act_connmark: initialize struct tc_ife to fix kernel leak  In tcf_connmark_dump(), the variable 'opt' was partially initialized using a designatied initializer. While the padding bytes are reamined uninitialized. nla_put() copies the entire structure into a netlink message, these uninitialized bytes leaked to userspace.  Initialize the structure with memset before assigning its fields to ensure all members and padding are cleared prior to beign copied.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40280",
                                "url": "https://ubuntu.com/security/CVE-2025-40280",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tipc: Fix use-after-free in tipc_mon_reinit_self().  syzbot reported use-after-free of tipc_net(net)->monitors[] in tipc_mon_reinit_self(). [0]  The array is protected by RTNL, but tipc_mon_reinit_self() iterates over it without RTNL.  tipc_mon_reinit_self() is called from tipc_net_finalize(), which is always under RTNL except for tipc_net_finalize_work().  Let's hold RTNL in tipc_net_finalize_work().  [0]: BUG: KASAN: slab-use-after-free in __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] BUG: KASAN: slab-use-after-free in _raw_spin_lock_irqsave+0xa7/0xf0 kernel/locking/spinlock.c:162 Read of size 1 at addr ffff88805eae1030 by task kworker/0:7/5989  CPU: 0 UID: 0 PID: 5989 Comm: kworker/0:7 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025 Workqueue: events tipc_net_finalize_work Call Trace:  <TASK>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0xca/0x240 mm/kasan/report.c:482  kasan_report+0x118/0x150 mm/kasan/report.c:595  __kasan_check_byte+0x2a/0x40 mm/kasan/common.c:568  kasan_check_byte include/linux/kasan.h:399 [inline]  lock_acquire+0x8d/0x360 kernel/locking/lockdep.c:5842  __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]  _raw_spin_lock_irqsave+0xa7/0xf0 kernel/locking/spinlock.c:162  rtlock_slowlock kernel/locking/rtmutex.c:1894 [inline]  rwbase_rtmutex_lock_state kernel/locking/spinlock_rt.c:160 [inline]  rwbase_write_lock+0xd3/0x7e0 kernel/locking/rwbase_rt.c:244  rt_write_lock+0x76/0x110 kernel/locking/spinlock_rt.c:243  write_lock_bh include/linux/rwlock_rt.h:99 [inline]  tipc_mon_reinit_self+0x79/0x430 net/tipc/monitor.c:718  tipc_net_finalize+0x115/0x190 net/tipc/net.c:140  process_one_work kernel/workqueue.c:3236 [inline]  process_scheduled_works+0xade/0x17b0 kernel/workqueue.c:3319  worker_thread+0x8a0/0xda0 kernel/workqueue.c:3400  kthread+0x70e/0x8a0 kernel/kthread.c:463  ret_from_fork+0x439/0x7d0 arch/x86/kernel/process.c:148  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 6089:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x3e/0x80 mm/kasan/common.c:68  poison_kmalloc_redzone mm/kasan/common.c:388 [inline]  __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:405  kasan_kmalloc include/linux/kasan.h:260 [inline]  __kmalloc_cache_noprof+0x1a8/0x320 mm/slub.c:4407  kmalloc_noprof include/linux/slab.h:905 [inline]  kzalloc_noprof include/linux/slab.h:1039 [inline]  tipc_mon_create+0xc3/0x4d0 net/tipc/monitor.c:657  tipc_enable_bearer net/tipc/bearer.c:357 [inline]  __tipc_nl_bearer_enable+0xe16/0x13f0 net/tipc/bearer.c:1047  __tipc_nl_compat_doit net/tipc/netlink_compat.c:371 [inline]  tipc_nl_compat_doit+0x3bc/0x5f0 net/tipc/netlink_compat.c:393  tipc_nl_compat_handle net/tipc/netlink_compat.c:-1 [inline]  tipc_nl_compat_recv+0x83c/0xbe0 net/tipc/netlink_compat.c:1321  genl_family_rcv_msg_doit+0x215/0x300 net/netlink/genetlink.c:1115  genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]  genl_rcv_msg+0x60e/0x790 net/netlink/genetlink.c:1210  netlink_rcv_skb+0x208/0x470 net/netlink/af_netlink.c:2552  genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219  netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]  netlink_unicast+0x846/0xa10 net/netlink/af_netlink.c:1346  netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1896  sock_sendmsg_nosec net/socket.c:714 [inline]  __sock_sendmsg+0x21c/0x270 net/socket.c:729  ____sys_sendmsg+0x508/0x820 net/socket.c:2614  ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2668  __sys_sendmsg net/socket.c:2700 [inline]  __do_sys_sendmsg net/socket.c:2705 [inline]  __se_sys_sendmsg net/socket.c:2703 [inline]  __x64_sys_sendmsg+0x1a1/0x260 net/socket.c:2703  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0x3b0 arch/ ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40281",
                                "url": "https://ubuntu.com/security/CVE-2025-40281",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: prevent possible shift-out-of-bounds in sctp_transport_update_rto  syzbot reported a possible shift-out-of-bounds [1]  Blamed commit added rto_alpha_max and rto_beta_max set to 1000.  It is unclear if some sctp users are setting very large rto_alpha and/or rto_beta.  In order to prevent user regression, perform the test at run time.  Also add READ_ONCE() annotations as sysctl values can change under us.  [1]  UBSAN: shift-out-of-bounds in net/sctp/transport.c:509:41 shift exponent 64 is too large for 32-bit type 'unsigned int' CPU: 0 UID: 0 PID: 16704 Comm: syz.2.2320 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 Call Trace:  <TASK>   __dump_stack lib/dump_stack.c:94 [inline]   dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120   ubsan_epilogue lib/ubsan.c:233 [inline]   __ubsan_handle_shift_out_of_bounds+0x27f/0x420 lib/ubsan.c:494   sctp_transport_update_rto.cold+0x1c/0x34b net/sctp/transport.c:509   sctp_check_transmitted+0x11c4/0x1c30 net/sctp/outqueue.c:1502   sctp_outq_sack+0x4ef/0x1b20 net/sctp/outqueue.c:1338   sctp_cmd_process_sack net/sctp/sm_sideeffect.c:840 [inline]   sctp_cmd_interpreter net/sctp/sm_sideeffect.c:1372 [inline]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40282",
                                "url": "https://ubuntu.com/security/CVE-2025-40282",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: 6lowpan: reset link-local header on ipv6 recv path  Bluetooth 6lowpan.c netdev has header_ops, so it must set link-local header for RX skb, otherwise things crash, eg. with AF_PACKET SOCK_RAW  Add missing skb_reset_mac_header() for uncompressed ipv6 RX path.  For the compressed one, it is done in lowpan_header_decompress().  Log: (BlueZ 6lowpan-tester Client Recv Raw - Success) ------ kernel BUG at net/core/skbuff.c:212! Call Trace: <IRQ> ... packet_rcv (net/packet/af_packet.c:2152) ... <TASK> __local_bh_enable_ip (kernel/softirq.c:407) netif_rx (net/core/dev.c:5648) chan_recv_cb (net/bluetooth/6lowpan.c:294 net/bluetooth/6lowpan.c:359) ------",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40283",
                                "url": "https://ubuntu.com/security/CVE-2025-40283",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: btusb: reorder cleanup in btusb_disconnect to avoid UAF  There is a KASAN: slab-use-after-free read in btusb_disconnect(). Calling \"usb_driver_release_interface(&btusb_driver, data->intf)\" will free the btusb data associated with the interface. The same data is then used later in the function, hence the UAF.  Fix by moving the accesses to btusb data to before the data is free'd.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68244",
                                "url": "https://ubuntu.com/security/CVE-2025-68244",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915: Avoid lock inversion when pinning to GGTT on CHV/BXT+VTD  On completion of i915_vma_pin_ww(), a synchronous variant of dma_fence_work_commit() is called.  When pinning a VMA to GGTT address space on a Cherry View family processor, or on a Broxton generation SoC with VTD enabled, i.e., when stop_machine() is then called from intel_ggtt_bind_vma(), that can potentially lead to lock inversion among reservation_ww and cpu_hotplug locks.  [86.861179] ====================================================== [86.861193] WARNING: possible circular locking dependency detected [86.861209] 6.15.0-rc5-CI_DRM_16515-gca0305cadc2d+ #1 Tainted: G     U [86.861226] ------------------------------------------------------ [86.861238] i915_module_loa/1432 is trying to acquire lock: [86.861252] ffffffff83489090 (cpu_hotplug_lock){++++}-{0:0}, at: stop_machine+0x1c/0x50 [86.861290] but task is already holding lock: [86.861303] ffffc90002e0b4c8 (reservation_ww_class_mutex){+.+.}-{3:3}, at: i915_vma_pin.constprop.0+0x39/0x1d0 [i915] [86.862233] which lock already depends on the new lock. [86.862251] the existing dependency chain (in reverse order) is: [86.862265] -> #5 (reservation_ww_class_mutex){+.+.}-{3:3}: [86.862292]        dma_resv_lockdep+0x19a/0x390 [86.862315]        do_one_initcall+0x60/0x3f0 [86.862334]        kernel_init_freeable+0x3cd/0x680 [86.862353]        kernel_init+0x1b/0x200 [86.862369]        ret_from_fork+0x47/0x70 [86.862383]        ret_from_fork_asm+0x1a/0x30 [86.862399] -> #4 (reservation_ww_class_acquire){+.+.}-{0:0}: [86.862425]        dma_resv_lockdep+0x178/0x390 [86.862440]        do_one_initcall+0x60/0x3f0 [86.862454]        kernel_init_freeable+0x3cd/0x680 [86.862470]        kernel_init+0x1b/0x200 [86.862482]        ret_from_fork+0x47/0x70 [86.862495]        ret_from_fork_asm+0x1a/0x30 [86.862509] -> #3 (&mm->mmap_lock){++++}-{3:3}: [86.862531]        down_read_killable+0x46/0x1e0 [86.862546]        lock_mm_and_find_vma+0xa2/0x280 [86.862561]        do_user_addr_fault+0x266/0x8e0 [86.862578]        exc_page_fault+0x8a/0x2f0 [86.862593]        asm_exc_page_fault+0x27/0x30 [86.862607]        filldir64+0xeb/0x180 [86.862620]        kernfs_fop_readdir+0x118/0x480 [86.862635]        iterate_dir+0xcf/0x2b0 [86.862648]        __x64_sys_getdents64+0x84/0x140 [86.862661]        x64_sys_call+0x1058/0x2660 [86.862675]        do_syscall_64+0x91/0xe90 [86.862689]        entry_SYSCALL_64_after_hwframe+0x76/0x7e [86.862703] -> #2 (&root->kernfs_rwsem){++++}-{3:3}: [86.862725]        down_write+0x3e/0xf0 [86.862738]        kernfs_add_one+0x30/0x3c0 [86.862751]        kernfs_create_dir_ns+0x53/0xb0 [86.862765]        internal_create_group+0x134/0x4c0 [86.862779]        sysfs_create_group+0x13/0x20 [86.862792]        topology_add_dev+0x1d/0x30 [86.862806]        cpuhp_invoke_callback+0x4b5/0x850 [86.862822]        cpuhp_issue_call+0xbf/0x1f0 [86.862836]        __cpuhp_setup_state_cpuslocked+0x111/0x320 [86.862852]        __cpuhp_setup_state+0xb0/0x220 [86.862866]        topology_sysfs_init+0x30/0x50 [86.862879]        do_one_initcall+0x60/0x3f0 [86.862893]        kernel_init_freeable+0x3cd/0x680 [86.862908]        kernel_init+0x1b/0x200 [86.862921]        ret_from_fork+0x47/0x70 [86.862934]        ret_from_fork_asm+0x1a/0x30 [86.862947] -> #1 (cpuhp_state_mutex){+.+.}-{3:3}: [86.862969]        __mutex_lock+0xaa/0xed0 [86.862982]        mutex_lock_nested+0x1b/0x30 [86.862995]        __cpuhp_setup_state_cpuslocked+0x67/0x320 [86.863012]        __cpuhp_setup_state+0xb0/0x220 [86.863026]        page_alloc_init_cpuhp+0x2d/0x60 [86.863041]        mm_core_init+0x22/0x2d0 [86.863054]        start_kernel+0x576/0xbd0 [86.863068]        x86_64_start_reservations+0x18/0x30 [86.863084]        x86_64_start_kernel+0xbf/0x110 [86.863098]        common_startup_64+0x13e/0x141 [86.863114] -> #0 (cpu_hotplug_lock){++++}-{0:0}: [86.863135]        __lock_acquire+0x16 ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68192",
                                "url": "https://ubuntu.com/security/CVE-2025-68192",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: qmi_wwan: initialize MAC header offset in qmimux_rx_fixup  Raw IP packets have no MAC header, leaving skb->mac_header uninitialized. This can trigger kernel panics on ARM64 when xfrm or other subsystems access the offset due to strict alignment checks.  Initialize the MAC header to prevent such crashes.  This can trigger kernel panics on ARM when running IPsec over the qmimux0 interface.  Example trace:      Internal error: Oops: 000000009600004f [#1] SMP     CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.12.34-gbe78e49cb433 #1     Hardware name: LS1028A RDB Board (DT)     pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)     pc : xfrm_input+0xde8/0x1318     lr : xfrm_input+0x61c/0x1318     sp : ffff800080003b20     Call trace:      xfrm_input+0xde8/0x1318      xfrm6_rcv+0x38/0x44      xfrm6_esp_rcv+0x48/0xa8      ip6_protocol_deliver_rcu+0x94/0x4b0      ip6_input_finish+0x44/0x70      ip6_input+0x44/0xc0      ipv6_rcv+0x6c/0x114      __netif_receive_skb_one_core+0x5c/0x8c      __netif_receive_skb+0x18/0x60      process_backlog+0x78/0x17c      __napi_poll+0x38/0x180      net_rx_action+0x168/0x2f0",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40331",
                                "url": "https://ubuntu.com/security/CVE-2025-40331",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: Prevent TOCTOU out-of-bounds write  For the following path not holding the sock lock,    sctp_diag_dump() -> sctp_for_each_endpoint() -> sctp_ep_dump()  make sure not to exceed bounds in case the address list has grown between buffer allocation (time-of-check) and write (time-of-use).",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-09 16:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40304",
                                "url": "https://ubuntu.com/security/CVE-2025-40304",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fbdev: Add bounds checking in bit_putcs to fix vmalloc-out-of-bounds  Add bounds checking to prevent writes past framebuffer boundaries when rendering text near screen edges. Return early if the Y position is off-screen and clip image height to screen boundary. Break from the rendering loop if the X position is off-screen. When clipping image width to fit the screen, update the character count to match the clipped width to prevent buffer size mismatches.  Without the character count update, bit_putcs_aligned and bit_putcs_unaligned receive mismatched parameters where the buffer is allocated for the clipped width but cnt reflects the original larger count, causing out-of-bounds writes.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40306",
                                "url": "https://ubuntu.com/security/CVE-2025-40306",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  orangefs: fix xattr related buffer overflow...  Willy Tarreau <w@1wt.eu> forwarded me a message from Disclosure <disclosure@aisle.com> with the following warning:  > The helper `xattr_key()` uses the pointer variable in the loop condition > rather than dereferencing it. As `key` is incremented, it remains non-NULL > (until it runs into unmapped memory), so the loop does not terminate on > valid C strings and will walk memory indefinitely, consuming CPU or hanging > the thread.  I easily reproduced this with setfattr and getfattr, causing a kernel oops, hung user processes and corrupted orangefs files. Disclosure sent along a diff (not a patch) with a suggested fix, which I based this patch on.  After xattr_key started working right, xfstest generic/069 exposed an xattr related memory leak that lead to OOM. xattr_key returns a hashed key.  When adding xattrs to the orangefs xattr cache, orangefs used hash_add, a kernel hashing macro. hash_add also hashes the key using hash_log which resulted in additions to the xattr cache going to the wrong hash bucket. generic/069 tortures a single file and orangefs does a getattr for the xattr \"security.capability\" every time. Orangefs negative caches on xattrs which includes a kmalloc. Since adds to the xattr cache were going to the wrong bucket, every getattr for \"security.capability\" resulted in another kmalloc, none of which were ever freed.  I changed the two uses of hash_add to hlist_add_head instead and the memory leak ceased and generic/069 quit throwing furniture.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40308",
                                "url": "https://ubuntu.com/security/CVE-2025-40308",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: bcsp: receive data only if registered  Currently, bcsp_recv() can be called even when the BCSP protocol has not been registered. This leads to a NULL pointer dereference, as shown in the following stack trace:      KASAN: null-ptr-deref in range [0x0000000000000108-0x000000000000010f]     RIP: 0010:bcsp_recv+0x13d/0x1740 drivers/bluetooth/hci_bcsp.c:590     Call Trace:      <TASK>      hci_uart_tty_receive+0x194/0x220 drivers/bluetooth/hci_ldisc.c:627      tiocsti+0x23c/0x2c0 drivers/tty/tty_io.c:2290      tty_ioctl+0x626/0xde0 drivers/tty/tty_io.c:2706      vfs_ioctl fs/ioctl.c:51 [inline]      __do_sys_ioctl fs/ioctl.c:907 [inline]      __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:893      do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]      do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94      entry_SYSCALL_64_after_hwframe+0x77/0x7f  To prevent this, ensure that the HCI_UART_REGISTERED flag is set before processing received data. If the protocol is not registered, return -EUNATCH.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40309",
                                "url": "https://ubuntu.com/security/CVE-2025-40309",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: SCO: Fix UAF on sco_conn_free  BUG: KASAN: slab-use-after-free in sco_conn_free net/bluetooth/sco.c:87 [inline] BUG: KASAN: slab-use-after-free in kref_put include/linux/kref.h:65 [inline] BUG: KASAN: slab-use-after-free in sco_conn_put+0xdd/0x410 net/bluetooth/sco.c:107 Write of size 8 at addr ffff88811cb96b50 by task kworker/u17:4/352  CPU: 1 UID: 0 PID: 352 Comm: kworker/u17:4 Not tainted 6.17.0-rc5-g717368f83676 #4 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 Workqueue: hci13 hci_cmd_sync_work Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x10b/0x170 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0x191/0x550 mm/kasan/report.c:482  kasan_report+0xc4/0x100 mm/kasan/report.c:595  sco_conn_free net/bluetooth/sco.c:87 [inline]  kref_put include/linux/kref.h:65 [inline]  sco_conn_put+0xdd/0x410 net/bluetooth/sco.c:107  sco_connect_cfm+0xb4/0xae0 net/bluetooth/sco.c:1441  hci_connect_cfm include/net/bluetooth/hci_core.h:2082 [inline]  hci_conn_failed+0x20a/0x2e0 net/bluetooth/hci_conn.c:1313  hci_conn_unlink+0x55f/0x810 net/bluetooth/hci_conn.c:1121  hci_conn_del+0xb6/0x1110 net/bluetooth/hci_conn.c:1147  hci_abort_conn_sync+0x8c5/0xbb0 net/bluetooth/hci_sync.c:5689  hci_cmd_sync_work+0x281/0x380 net/bluetooth/hci_sync.c:332  process_one_work kernel/workqueue.c:3236 [inline]  process_scheduled_works+0x77e/0x1040 kernel/workqueue.c:3319  worker_thread+0xbee/0x1200 kernel/workqueue.c:3400  kthread+0x3c7/0x870 kernel/kthread.c:463  ret_from_fork+0x13a/0x1e0 arch/x86/kernel/process.c:148  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 31370:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x30/0x70 mm/kasan/common.c:68  poison_kmalloc_redzone mm/kasan/common.c:388 [inline]  __kasan_kmalloc+0x82/0x90 mm/kasan/common.c:405  kasan_kmalloc include/linux/kasan.h:260 [inline]  __do_kmalloc_node mm/slub.c:4382 [inline]  __kmalloc_noprof+0x22f/0x390 mm/slub.c:4394  kmalloc_noprof include/linux/slab.h:909 [inline]  sk_prot_alloc+0xae/0x220 net/core/sock.c:2239  sk_alloc+0x34/0x5a0 net/core/sock.c:2295  bt_sock_alloc+0x3c/0x330 net/bluetooth/af_bluetooth.c:151  sco_sock_alloc net/bluetooth/sco.c:562 [inline]  sco_sock_create+0xc0/0x350 net/bluetooth/sco.c:593  bt_sock_create+0x161/0x3b0 net/bluetooth/af_bluetooth.c:135  __sock_create+0x3ad/0x780 net/socket.c:1589  sock_create net/socket.c:1647 [inline]  __sys_socket_create net/socket.c:1684 [inline]  __sys_socket+0xd5/0x330 net/socket.c:1731  __do_sys_socket net/socket.c:1745 [inline]  __se_sys_socket net/socket.c:1743 [inline]  __x64_sys_socket+0x7a/0x90 net/socket.c:1743  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xc7/0x240 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 31374:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x30/0x70 mm/kasan/common.c:68  kasan_save_free_info+0x40/0x50 mm/kasan/generic.c:576  poison_slab_object mm/kasan/common.c:243 [inline]  __kasan_slab_free+0x3d/0x50 mm/kasan/common.c:275  kasan_slab_free include/linux/kasan.h:233 [inline]  slab_free_hook mm/slub.c:2428 [inline]  slab_free mm/slub.c:4701 [inline]  kfree+0x199/0x3b0 mm/slub.c:4900  sk_prot_free net/core/sock.c:2278 [inline]  __sk_destruct+0x4aa/0x630 net/core/sock.c:2373  sco_sock_release+0x2ad/0x300 net/bluetooth/sco.c:1333  __sock_release net/socket.c:649 [inline]  sock_close+0xb8/0x230 net/socket.c:1439  __fput+0x3d1/0x9e0 fs/file_table.c:468  task_work_run+0x206/0x2a0 kernel/task_work.c:227  get_signal+0x1201/0x1410 kernel/signal.c:2807  arch_do_signal_or_restart+0x34/0x740 arch/x86/kernel/signal.c:337  exit_to_user_mode_loop+0x68/0xc0 kernel/entry/common.c:40  exit_to_user_mode_prepare include/linux/irq-entry-common.h:225 [inline]  s ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40361",
                                "url": "https://ubuntu.com/security/CVE-2025-40361",
                                "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68185",
                                "url": "https://ubuntu.com/security/CVE-2025-68185",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfs4_setup_readdir(): insufficient locking for ->d_parent->d_inode dereferencing  Theoretically it's an oopsable race, but I don't believe one can manage to hit it on real hardware; might become doable on a KVM, but it still won't be easy to attack.  Anyway, it's easy to deal with - since xdr_encode_hyper() is just a call of put_unaligned_be64(), we can put that under ->d_lock and be done with that.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68176",
                                "url": "https://ubuntu.com/security/CVE-2025-68176",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  PCI: cadence: Check for the existence of cdns_pcie::ops before using it  cdns_pcie::ops might not be populated by all the Cadence glue drivers. This is going to be true for the upcoming Sophgo platform which doesn't set the ops.  Hence, add a check to prevent NULL pointer dereference.  [mani: reworded subject and description]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68168",
                                "url": "https://ubuntu.com/security/CVE-2025-68168",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jfs: fix uninitialized waitqueue in transaction manager  The transaction manager initialization in txInit() was not properly initializing TxBlock[0].waitor waitqueue, causing a crash when txEnd(0) is called on read-only filesystems.  When a filesystem is mounted read-only, txBegin() returns tid=0 to indicate no transaction. However, txEnd(0) still gets called and tries to access TxBlock[0].waitor via tid_to_tblock(0), but this waitqueue was never initialized because the initialization loop started at index 1 instead of 0.  This causes a 'non-static key' lockdep warning and system crash:   INFO: trying to register non-static key in txEnd  Fix by ensuring all transaction blocks including TxBlock[0] have their waitqueues properly initialized during txInit().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40312",
                                "url": "https://ubuntu.com/security/CVE-2025-40312",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jfs: Verify inode mode when loading from disk  The inode mode loaded from corrupted disk can be invalid. Do like what commit 0a9e74051313 (\"isofs: Verify inode mode when loading from disk\") does.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68321",
                                "url": "https://ubuntu.com/security/CVE-2025-68321",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  page_pool: always add GFP_NOWARN for ATOMIC allocations  Driver authors often forget to add GFP_NOWARN for page allocation from the datapath. This is annoying to users as OOMs are a fact of life, and we pretty much expect network Rx to hit page allocation failures during OOM. Make page pool add GFP_NOWARN for ATOMIC allocations by default.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68191",
                                "url": "https://ubuntu.com/security/CVE-2025-68191",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  udp_tunnel: use netdev_warn() instead of netdev_WARN()  netdev_WARN() uses WARN/WARN_ON to print a backtrace along with file and line information. In this case, udp_tunnel_nic_register() returning an error is just a failed operation, not a kernel bug.  udp_tunnel_nic_register() can fail due to a memory allocation failure (kzalloc() or udp_tunnel_nic_alloc()). This is a normal runtime error and not a kernel bug.  Replace netdev_WARN() with netdev_warn() accordingly.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40313",
                                "url": "https://ubuntu.com/security/CVE-2025-40313",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: pretend $Extend records as regular files  Since commit af153bb63a33 (\"vfs: catch invalid modes in may_open()\") requires any inode be one of S_IFDIR/S_IFLNK/S_IFREG/S_IFCHR/S_IFBLK/ S_IFIFO/S_IFSOCK type, use S_IFREG for $Extend records.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40314",
                                "url": "https://ubuntu.com/security/CVE-2025-40314",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: cdns3: gadget: Use-after-free during failed initialization and exit of cdnsp gadget  In the __cdnsp_gadget_init() and cdnsp_gadget_exit() functions, the gadget structure (pdev->gadget) was freed before its endpoints. The endpoints are linked via the ep_list in the gadget structure. Freeing the gadget first leaves dangling pointers in the endpoint list. When the endpoints are subsequently freed, this results in a use-after-free.  Fix: By separating the usb_del_gadget_udc() operation into distinct \"del\" and \"put\" steps, cdnsp_gadget_free_endpoints() can be executed prior to the final release of the gadget structure with usb_put_gadget().  A patch similar to bb9c74a5bd14(\"usb: dwc3: gadget: Free gadget structure  only after freeing endpoints\").",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68194",
                                "url": "https://ubuntu.com/security/CVE-2025-68194",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: imon: make send_packet() more robust  syzbot is reporting that imon has three problems which result in hung tasks due to forever holding device lock [1].  First problem is that when usb_rx_callback_intf0() once got -EPROTO error after ictx->dev_present_intf0 became true, usb_rx_callback_intf0() resubmits urb after printk(), and resubmitted urb causes usb_rx_callback_intf0() to again get -EPROTO error. This results in printk() flooding (RCU stalls).  Alan Stern commented [2] that    In theory it's okay to resubmit _if_ the driver has a robust   error-recovery scheme (such as giving up after some fixed limit on the   number of errors or after some fixed time has elapsed, perhaps with a   time delay to prevent a flood of errors).  Most drivers don't bother to   do this; they simply give up right away.  This makes them more   vulnerable to short-term noise interference during USB transfers, but in   reality such interference is quite rare.  There's nothing really wrong   with giving up right away.  but imon has a poor error-recovery scheme which just retries forever; this behavior should be fixed.  Since I'm not sure whether it is safe for imon users to give up upon any error code, this patch takes care of only union of error codes chosen from modules in drivers/media/rc/ directory which handle -EPROTO error (i.e. ir_toy, mceusb and igorplugusb).  Second problem is that when usb_rx_callback_intf0() once got -EPROTO error before ictx->dev_present_intf0 becomes true, usb_rx_callback_intf0() always resubmits urb due to commit 8791d63af0cf (\"[media] imon: don't wedge hardware after early callbacks\"). Move the ictx->dev_present_intf0 test introduced by commit 6f6b90c9231a (\"[media] imon: don't parse scancodes until intf configured\") to immediately before imon_incoming_packet(), or the first problem explained above happens without printk() flooding (i.e. hung task).  Third problem is that when usb_rx_callback_intf0() is not called for some reason (e.g. flaky hardware; the reproducer for this problem sometimes prevents usb_rx_callback_intf0() from being called), wait_for_completion_interruptible() in send_packet() never returns (i.e. hung task). As a workaround for such situation, change send_packet() to wait for completion with timeout of 10 seconds.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40363",
                                "url": "https://ubuntu.com/security/CVE-2025-40363",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: ipv6: fix field-spanning memcpy warning in AH output  Fix field-spanning memcpy warnings in ah6_output() and ah6_output_done() where extension headers are copied to/from IPv6 address fields, triggering fortify-string warnings about writes beyond the 16-byte address fields.    memcpy: detected field-spanning write (size 40) of single field \"&top_iph->saddr\" at net/ipv6/ah6.c:439 (size 16)   WARNING: CPU: 0 PID: 8838 at net/ipv6/ah6.c:439 ah6_output+0xe7e/0x14e0 net/ipv6/ah6.c:439  The warnings are false positives as the extension headers are intentionally placed after the IPv6 header in memory. Fix by properly copying addresses and extension headers separately, and introduce helper functions to avoid code duplication.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40342",
                                "url": "https://ubuntu.com/security/CVE-2025-40342",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-fc: use lock accessing port_state and rport state  nvme_fc_unregister_remote removes the remote port on a lport object at any point in time when there is no active association. This races with with the reconnect logic, because nvme_fc_create_association is not taking a lock to check the port_state and atomically increase the active count on the rport.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-09 16:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40343",
                                "url": "https://ubuntu.com/security/CVE-2025-40343",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-fc: avoid scheduling association deletion twice  When forcefully shutting down a port via the configfs interface, nvmet_port_subsys_drop_link() first calls nvmet_port_del_ctrls() and then nvmet_disable_port(). Both functions will eventually schedule all remaining associations for deletion.  The current implementation checks whether an association is about to be removed, but only after the work item has already been scheduled. As a result, it is possible for the first scheduled work item to free all resources, and then for the same work item to be scheduled again for deletion.  Because the association list is an RCU list, it is not possible to take a lock and remove the list entry directly, so it cannot be looked up again. Instead, a flag (terminating) must be used to determine whether the association is already in the process of being deleted.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-09 16:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68177",
                                "url": "https://ubuntu.com/security/CVE-2025-68177",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  cpufreq/longhaul: handle NULL policy in longhaul_exit  longhaul_exit() was calling cpufreq_cpu_get(0) without checking for a NULL policy pointer. On some systems, this could lead to a NULL dereference and a kernel warning or panic.  This patch adds a check using unlikely() and returns early if the policy is NULL.  Bugzilla: #219962",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40360",
                                "url": "https://ubuntu.com/security/CVE-2025-40360",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/sysfb: Do not dereference NULL pointer in plane reset  The plane state in __drm_gem_reset_shadow_plane() can be NULL. Do not deref that pointer, but forward NULL to the other plane-reset helpers. Clears plane->state to NULL.  v2: - fix typo in commit description (Javier)",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40315",
                                "url": "https://ubuntu.com/security/CVE-2025-40315",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: f_fs: Fix epfile null pointer access after ep enable.  A race condition occurs when ffs_func_eps_enable() runs concurrently with ffs_data_reset(). The ffs_data_clear() called in ffs_data_reset() sets ffs->epfiles to NULL before resetting ffs->eps_count to 0, leading to a NULL pointer dereference when accessing epfile->ep in ffs_func_eps_enable() after successful usb_ep_enable().  The ffs->epfiles pointer is set to NULL in both ffs_data_clear() and ffs_data_close() functions, and its modification is protected by the spinlock ffs->eps_lock. And the whole ffs_func_eps_enable() function is also protected by ffs->eps_lock.  Thus, add NULL pointer handling for ffs->epfiles in the ffs_func_eps_enable() function to fix issues",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40317",
                                "url": "https://ubuntu.com/security/CVE-2025-40317",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: slimbus: fix bus_context pointer in regmap init calls  Commit 4e65bda8273c (\"ASoC: wcd934x: fix error handling in wcd934x_codec_parse_data()\") revealed the problem in the slimbus regmap. That commit breaks audio playback, for instance, on sdm845 Thundercomm Dragonboard 845c board:   Unable to handle kernel paging request at virtual address ffff8000847cbad4  ...  CPU: 5 UID: 0 PID: 776 Comm: aplay Not tainted 6.18.0-rc1-00028-g7ea30958b305 #11 PREEMPT  Hardware name: Thundercomm Dragonboard 845c (DT)  ...  Call trace:   slim_xfer_msg+0x24/0x1ac [slimbus] (P)   slim_read+0x48/0x74 [slimbus]   regmap_slimbus_read+0x18/0x24 [regmap_slimbus]   _regmap_raw_read+0xe8/0x174   _regmap_bus_read+0x44/0x80   _regmap_read+0x60/0xd8   _regmap_update_bits+0xf4/0x140   _regmap_select_page+0xa8/0x124   _regmap_raw_write_impl+0x3b8/0x65c   _regmap_bus_raw_write+0x60/0x80   _regmap_write+0x58/0xc0   regmap_write+0x4c/0x80   wcd934x_hw_params+0x494/0x8b8 [snd_soc_wcd934x]   snd_soc_dai_hw_params+0x3c/0x7c [snd_soc_core]   __soc_pcm_hw_params+0x22c/0x634 [snd_soc_core]   dpcm_be_dai_hw_params+0x1d4/0x38c [snd_soc_core]   dpcm_fe_dai_hw_params+0x9c/0x17c [snd_soc_core]   snd_pcm_hw_params+0x124/0x464 [snd_pcm]   snd_pcm_common_ioctl+0x110c/0x1820 [snd_pcm]   snd_pcm_ioctl+0x34/0x4c [snd_pcm]   __arm64_sys_ioctl+0xac/0x104   invoke_syscall+0x48/0x104   el0_svc_common.constprop.0+0x40/0xe0   do_el0_svc+0x1c/0x28   el0_svc+0x34/0xec   el0t_64_sync_handler+0xa0/0xf0   el0t_64_sync+0x198/0x19c  The __devm_regmap_init_slimbus() started to be used instead of __regmap_init_slimbus() after the commit mentioned above and turns out the incorrect bus_context pointer (3rd argument) was used in __devm_regmap_init_slimbus(). It should be just \"slimbus\" (which is equal to &slimbus->dev). Correct it. The wcd934x codec seems to be the only or the first user of devm_regmap_init_slimbus() but we should fix it till the point where __devm_regmap_init_slimbus() was introduced therefore two \"Fixes\" tags.  While at this, also correct the same argument in __regmap_init_slimbus().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68312",
                                "url": "https://ubuntu.com/security/CVE-2025-68312",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usbnet: Prevents free active kevent  The root cause of this issue are: 1. When probing the usbnet device, executing usbnet_link_change(dev, 0, 0); put the kevent work in global workqueue. However, the kevent has not yet been scheduled when the usbnet device is unregistered. Therefore, executing free_netdev() results in the \"free active object (kevent)\" error reported here.  2. Another factor is that when calling usbnet_disconnect()->unregister_netdev(), if the usbnet device is up, ndo_stop() is executed to cancel the kevent. However, because the device is not up, ndo_stop() is not executed.  The solution to this problem is to cancel the kevent before executing free_netdev().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40319",
                                "url": "https://ubuntu.com/security/CVE-2025-40319",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Sync pending IRQ work before freeing ring buffer  Fix a race where irq_work can be queued in bpf_ringbuf_commit() but the ring buffer is freed before the work executes. In the syzbot reproducer, a BPF program attached to sched_switch triggers bpf_ringbuf_commit(), queuing an irq_work. If the ring buffer is freed before this work executes, the irq_work thread may accesses freed memory. Calling `irq_work_sync(&rb->work)` ensures that all pending irq_work complete before freeing the buffer.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40321",
                                "url": "https://ubuntu.com/security/CVE-2025-40321",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: brcmfmac: fix crash while sending Action Frames in standalone AP Mode  Currently, whenever there is a need to transmit an Action frame, the brcmfmac driver always uses the P2P vif to send the \"actframe\" IOVAR to firmware. The P2P interfaces were available when wpa_supplicant is managing the wlan interface.  However, the P2P interfaces are not created/initialized when only hostapd is managing the wlan interface. And if hostapd receives an ANQP Query REQ Action frame even from an un-associated STA, the brcmfmac driver tries to use an uninitialized P2P vif pointer for sending the IOVAR to firmware. This NULL pointer dereferencing triggers a driver crash.   [ 1417.074538] Unable to handle kernel NULL pointer dereference at virtual  address 0000000000000000  [...]  [ 1417.075188] Hardware name: Raspberry Pi 4 Model B Rev 1.5 (DT)  [...]  [ 1417.075653] Call trace:  [ 1417.075662]  brcmf_p2p_send_action_frame+0x23c/0xc58 [brcmfmac]  [ 1417.075738]  brcmf_cfg80211_mgmt_tx+0x304/0x5c0 [brcmfmac]  [ 1417.075810]  cfg80211_mlme_mgmt_tx+0x1b0/0x428 [cfg80211]  [ 1417.076067]  nl80211_tx_mgmt+0x238/0x388 [cfg80211]  [ 1417.076281]  genl_family_rcv_msg_doit+0xe0/0x158  [ 1417.076302]  genl_rcv_msg+0x220/0x2a0  [ 1417.076317]  netlink_rcv_skb+0x68/0x140  [ 1417.076330]  genl_rcv+0x40/0x60  [ 1417.076343]  netlink_unicast+0x330/0x3b8  [ 1417.076357]  netlink_sendmsg+0x19c/0x3f8  [ 1417.076370]  __sock_sendmsg+0x64/0xc0  [ 1417.076391]  ____sys_sendmsg+0x268/0x2a0  [ 1417.076408]  ___sys_sendmsg+0xb8/0x118  [ 1417.076427]  __sys_sendmsg+0x90/0xf8  [ 1417.076445]  __arm64_sys_sendmsg+0x2c/0x40  [ 1417.076465]  invoke_syscall+0x50/0x120  [ 1417.076486]  el0_svc_common.constprop.0+0x48/0xf0  [ 1417.076506]  do_el0_svc+0x24/0x38  [ 1417.076525]  el0_svc+0x30/0x100  [ 1417.076548]  el0t_64_sync_handler+0x100/0x130  [ 1417.076569]  el0t_64_sync+0x190/0x198  [ 1417.076589] Code: f9401e80 aa1603e2 f9403be1 5280e483 (f9400000)  Fix this, by always using the vif corresponding to the wdev on which the Action frame Transmission request was initiated by the userspace. This way, even if P2P vif is not available, the IOVAR is sent to firmware on AP vif and the ANQP Query RESP Action frame is transmitted without crashing the driver.  Move init_completion() for \"send_af_done\" from brcmf_p2p_create_p2pdev() to brcmf_p2p_attach(). Because the former function would not get executed when only hostapd is managing wlan interface, and it is not safe to do reinit_completion() later in brcmf_p2p_tx_action_frame(), without any prior init_completion().  And in the brcmf_p2p_tx_action_frame() function, the condition check for P2P Presence response frame is not needed, since the wpa_supplicant is properly sending the P2P Presense Response frame on the P2P-GO vif instead of the P2P-Device vif.  [Cc stable]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40322",
                                "url": "https://ubuntu.com/security/CVE-2025-40322",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fbdev: bitblit: bound-check glyph index in bit_putcs*  bit_putcs_aligned()/unaligned() derived the glyph pointer from the character value masked by 0xff/0x1ff, which may exceed the actual font's glyph count and read past the end of the built-in font array. Clamp the index to the actual glyph count before computing the address.  This fixes a global out-of-bounds read reported by syzbot.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40211",
                                "url": "https://ubuntu.com/security/CVE-2025-40211",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ACPI: video: Fix use-after-free in acpi_video_switch_brightness()  The switch_brightness_work delayed work accesses device->brightness and device->backlight, freed by acpi_video_dev_unregister_backlight() during device removal.  If the work executes after acpi_video_bus_unregister_backlight() frees these resources, it causes a use-after-free when acpi_video_switch_brightness() dereferences device->brightness or device->backlight.  Fix this by calling cancel_delayed_work_sync() for each device's switch_brightness_work in acpi_video_bus_remove_notify_handler() after removing the notify handler that queues the work. This ensures the work completes before the memory is freed.  [ rjw: Changelog edit ]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-21 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40324",
                                "url": "https://ubuntu.com/security/CVE-2025-40324",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: Fix crash in nfsd4_read_release()  When tracing is enabled, the trace_nfsd_read_done trace point crashes during the pynfs read.testNoFh test.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40083",
                                "url": "https://ubuntu.com/security/CVE-2025-40083",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: Fix null-deref in agg_dequeue  To prevent a potential crash in agg_dequeue (net/sched/sch_qfq.c) when cl->qdisc->ops->peek(cl->qdisc) returns NULL, we check the return value before using it, similar to the existing approach in sch_hfsc.c.  To avoid code duplication, the following changes are made:  1. Changed qdisc_warn_nonwc(include/net/pkt_sched.h) into a static inline function.  2. Moved qdisc_peek_len from net/sched/sch_hfsc.c to include/net/pkt_sched.h so that sch_qfq can reuse it.  3. Applied qdisc_peek_len in agg_dequeue to avoid crashing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-29 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-41014",
                                "url": "https://ubuntu.com/security/CVE-2024-41014",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  xfs: add bounds checking to xlog_recover_process_data  There is a lack of verification of the space occupied by fixed members of xlog_op_header in the xlog_recover_process_data.  We can create a crafted image to trigger an out of bounds read by following these steps:     1) Mount an image of xfs, and do some file operations to leave records     2) Before umounting, copy the image for subsequent steps to simulate        abnormal exit. Because umount will ensure that tail_blk and        head_blk are the same, which will result in the inability to enter        xlog_recover_process_data     3) Write a tool to parse and modify the copied image in step 2     4) Make the end of the xlog_op_header entries only 1 byte away from        xlog_rec_header->h_size     5) xlog_rec_header->h_num_logops++     6) Modify xlog_rec_header->h_crc  Fix: Add a check to make sure there is sufficient space to access fixed members of xlog_op_header.",
                                "cve_priority": "low",
                                "cve_public_date": "2024-07-29 07:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2022-49267",
                                "url": "https://ubuntu.com/security/CVE-2022-49267",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mmc: core: use sysfs_emit() instead of sprintf()  sprintf() (still used in the MMC core for the sysfs output) is vulnerable to the buffer overflow.  Use the new-fangled sysfs_emit() instead.  Found by Linux Verification Center (linuxtesting.org) with the SVACE static analysis tool.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-26 07:01:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-21780",
                                "url": "https://ubuntu.com/security/CVE-2025-21780",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdgpu: avoid buffer overflow attach in smu_sys_set_pp_table()  It malicious user provides a small pptable through sysfs and then a bigger pptable, it may cause buffer overflow attack in function smu_sys_set_pp_table().",
                                "cve_priority": "high",
                                "cve_public_date": "2025-02-27 03:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux: 5.15.0-172.182 -proposed tracker (LP: #2141059)",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704)",
                            "    - Revert \"xfrm: destroy xfrm_state synchronously on net exit path\"",
                            "    - xfrm: flush all states in xfrm_state_fini",
                            "    - dpaa2-mac: bail if the dpmacs fwnode is not found",
                            "    - drm/i915/selftests: Fix inconsistent IS_ERR and PTR_ERR",
                            "    - leds: Replace all non-returning strlcpy with strscpy",
                            "    - leds: spi-byte: Use devm_led_classdev_register_ext()",
                            "    - Documentation: process: Also mention Sasha Levin as stable tree",
                            "      maintainer",
                            "    - USB: serial: option: add Foxconn T99W760",
                            "    - USB: serial: option: add Telit Cinterion FE910C04 new compositions",
                            "    - USB: serial: option: move Telit 0x10c7 composition in the right place",
                            "    - USB: serial: ftdi_sio: match on interface number for jtag",
                            "    - serial: add support of CPCI cards",
                            "    - USB: serial: belkin_sa: fix TIOCMBIS and TIOCMBIC",
                            "    - USB: serial: kobil_sct: fix TIOCMBIS and TIOCMBIC",
                            "    - spi: xilinx: increase number of retries before declaring stall",
                            "    - spi: imx: keep dma request disabled before dma transfer setup",
                            "    - pinctrl: qcom: msm: Fix deadlock in pinmux configuration",
                            "    - platform/x86: acer-wmi: Ignore backlight event",
                            "    - platform/x86: huawei-wmi: add keys for HONOR models",
                            "    - HID: elecom: Add support for ELECOM M-XT3URBK (018F)",
                            "    - drm/panel: visionox-rm69299: Don't clear all mode flags",
                            "    - USB: Fix descriptor count when handling invalid MBIM extended descriptor",
                            "    - irqchip/qcom-irq-combiner: Fix section mismatch",
                            "    - rculist: Add hlist_nulls_replace_rcu() and",
                            "      hlist_nulls_replace_init_rcu()",
                            "    - inet: Avoid ehash lookup race in inet_ehash_insert()",
                            "    - iio: imu: st_lsm6dsx: introduce st_lsm6dsx_device_set_enable routine",
                            "    - iio: imu: st_lsm6dsx: discard samples during filters settling time",
                            "    - iio: imu: st_lsm6dsx: Fix measurement unit for odr struct member",
                            "    - arm64: dts: imx8mm-venice-gw72xx: remove unused sdhc1 pinctrl",
                            "    - uio: uio_fsl_elbc_gpcm:: Add null pointer check to",
                            "      uio_fsl_elbc_gpcm_probe",
                            "    - crypto: hisilicon/qm - restore original qos values",
                            "    - s390/smp: Fix fallback CPU detection",
                            "    - s390/ap: Don't leak debug feature files if AP instructions are not",
                            "      available",
                            "    - firmware: imx: scu-irq: fix OF node leak in",
                            "    - phy: mscc: Fix PTP for VSC8574 and VSC8572",
                            "    - sctp: Defer SCTP_DBG_OBJCNT_DEC() to sctp_destroy_sock().",
                            "    - compiler-gcc.h: Define __SANITIZE_ADDRESS__ under hwaddress sanitizer",
                            "    - kmsan: introduce __no_sanitize_memory and __no_kmsan_checks",
                            "    - x86: kmsan: don't instrument stack walking functions",
                            "    - x86/dumpstack: Prevent KASAN false positive warnings in __show_regs()",
                            "    - pinctrl: stm32: fix hwspinlock resource leak in probe function",
                            "    - i3c: fix refcount inconsistency in i3c_master_register",
                            "    - i3c: master: svc: Prevent incomplete IBI transaction",
                            "    - power: supply: wm831x: Check wm831x_set_bits() return value",
                            "    - power: supply: apm_power: only unset own apm_get_power_status",
                            "    - scsi: target: Do not write NUL characters into ASCII configfs output",
                            "    - spi: tegra210-quad: use device_reset method",
                            "    - spi: tegra210-quad: add new chips to compatible",
                            "    - spi: tegra210-quad: combined sequence mode",
                            "    - spi: tegra210-quad: modify chip select (CS) deactivation",
                            "    - mfd: da9055: Fix missing regmap_del_irq_chip() in error path",
                            "    - ext4: minor defrag code improvements",
                            "    - ext4: correct the checking of quota files before moving extents",
                            "    - perf/x86/intel: Correct large PEBS flag check",
                            "    - regulator: core: disable supply if enabling main regulator fails",
                            "    - nbd: clean up return value checking of sock_xmit()",
                            "    - nbd: partition nbd_read_stat() into nbd_read_reply() and",
                            "      nbd_handle_reply()",
                            "    - scsi: stex: Fix reboot_notifier leak in probe error path",
                            "    - dt-bindings: PCI: convert amlogic,meson-pcie.txt to dt-schema",
                            "    - dt-bindings: PCI: amlogic: Fix the register name of the DBI region",
                            "    - RDMA/rtrs: server: Fix error handling in get_or_create_srv",
                            "    - ntfs3: init run lock for extend inode",
                            "    - powerpc/32: Fix unpaired stwcx. on interrupt exit",
                            "    - wifi: cw1200: Fix potential memory leak in cw1200_bh_rx_helper()",
                            "    - coresight: etm4x: Save restore TRFCR_EL1",
                            "    - coresight: etm4x: Use Trace Filtering controls dynamically",
                            "    - coresight-etm4x: add isb() before reading the TRCSTATR",
                            "    - coresight: etm4x: Extract the trace unit controlling",
                            "    - coresight: etm4x: Add context synchronization before enabling trace",
                            "    - clk: renesas: r9a06g032: Fix memory leak in error path",
                            "    - lib/vsprintf: Check pointer before dereferencing in time_and_date()",
                            "    - ACPI: property: Fix fwnode refcount leak in",
                            "      acpi_fwnode_graph_parse_endpoint()",
                            "    - scsi: sim710: Fix resource leak by adding missing ioport_unmap() calls",
                            "    - leds: netxbig: Fix GPIO descriptor leak in error paths",
                            "    - PCI: keystone: Exit ks_pcie_probe() for invalid mode",
                            "    - ps3disk: use memcpy_{from,to}_bvec index",
                            "    - selftests/bpf: Fix failure paths in send_signal test",
                            "    - watchdog: wdat_wdt: Stop watchdog when uninstalling module",
                            "    - watchdog: wdat_wdt: Fix ACPI table leak in probe function",
                            "    - NFSD/blocklayout: Fix minlength check in proc_layoutget",
                            "    - powerpc/64s/ptdump: Fix kernel_hash_pagetable dump for ISA v3.00 HPTE",
                            "      format",
                            "    - fs/ntfs3: Remove unused mi_mark_free",
                            "    - fs/ntfs3: Add new argument is_mft to ntfs_mark_rec_free",
                            "    - fs/ntfs3: Make ni_ins_new_attr return error",
                            "    - fs/ntfs3: out1 also needs to put mi",
                            "    - fs/ntfs3: Prevent memory leaks in add sub record",
                            "    - drm/mediatek: Fix CCORR mtk_ctm_s31_32_to_s1_n function issue",
                            "    - pwm: bcm2835: Make sure the channel is enabled after pwm_request()",
                            "    - mfd: mt6397-irq: Fix missing irq_domain_remove() in error path",
                            "    - mfd: mt6358-irq: Fix missing irq_domain_remove() in error path",
                            "    - usb: chaoskey: fix locking for O_NONBLOCK",
                            "    - usb: dwc2: disable platform lowlevel hw resources during shutdown",
                            "    - usb: dwc2: fix hang during shutdown if set as peripheral",
                            "    - usb: dwc2: fix hang during suspend if set as peripheral",
                            "    - usb: raw-gadget: cap raw_io transfer length to KMALLOC_MAX_SIZE",
                            "    - selftests/bpf: skip test_perf_branches_hw() on unsupported platforms",
                            "    - selftests/bpf: Improve reliability of test_perf_branches_no_hw()",
                            "    - crypto: ccree - Correctly handle return of sg_nents_for_len",
                            "    - staging: fbtft: core: fix potential memory leak in fbtft_probe_common()",
                            "    - PCI: dwc: Fix wrong PORT_LOGIC_LTSSM_STATE_MASK definition",
                            "    - wifi: ieee80211: correct FILS status codes",
                            "    - backlight: led_bl: Take led_access lock when required",
                            "    - backlight: lp855x: Fix lp855x.h kernel-doc warnings",
                            "    - iommu/arm-smmu-qcom: Enable use of all SMR groups when running bare-",
                            "      metal",
                            "    - RDMA/irdma: Fix data race in irdma_sc_ccq_arm",
                            "    - RDMA/irdma: Fix data race in irdma_free_pble",
                            "    - ASoC: fsl_xcvr: Add Counter registers",
                            "    - ASoC: fsl_xcvr: Add support for i.MX93 platform",
                            "    - ASoC: fsl_xcvr: clear the channel status control memory",
                            "    - drm/amd/display: Fix logical vs bitwise bug in",
                            "      get_embedded_panel_info_v2_1()",
                            "    - ACPI: processor_core: fix map_x2apic_id for amd-pstate on am4",
                            "    - ext4: remove unused return value of __mb_check_buddy",
                            "    - ext4: improve integrity checking in __mb_check_buddy by enhancing",
                            "      order-0 validation",
                            "    - vdpa: Introduce and use vdpa device get, set config helpers",
                            "    - vdpa: Introduce query of device config layout",
                            "    - vdpa: Sync calls set/get config/status with cf_mutex",
                            "    - virtio_vdpa: fix misleading return in void function",
                            "    - virtio: fix virtqueue_set_affinity() docs",
                            "    - ASoC: Intel: catpt: Fix error path in hw_params()",
                            "    - netfilter: flowtable: check for maximum number of encapsulations in",
                            "      bridge vlan",
                            "    - netfilter: nf_conncount: reduce unnecessary GC",
                            "    - netfilter: nf_conncount: rework API to use sk_buff directly",
                            "    - netfilter: nft_connlimit: update the count if add was skipped",
                            "    - net: stmmac: fix rx limit check in stmmac_rx_zc()",
                            "    - mtd: lpddr_cmds: fix signed shifts in lpddr_cmds",
                            "    - remoteproc: qcom_q6v5_wcss: fix parsing of qcom,halt-regs",
                            "    - perf tools: Fix split kallsyms DSO counting",
                            "    - pinctrl: single: Fix PIN_CONFIG_BIAS_DISABLE handling",
                            "    - pinctrl: single: Fix incorrect type for error return variable",
                            "    - fbdev: ssd1307fb: fix potential page leak in ssd1307fb_probe()",
                            "    - NFS: Label the dentry with a verifier in nfs_rmdir() and nfs_unlink()",
                            "    - NFS: don't unhash dentry during unlink/rename",
                            "    - NFS: Avoid changing nlink when file removes and attribute updates race",
                            "    - fs/nls: Fix utf16 to utf8 conversion",
                            "    - NFSv4: Add some support for case insensitive filesystems",
                            "    - NFS: Fix the verifier for case sensitive filesystem in nfs_atomic_open()",
                            "    - NFS: Initialise verifiers for visible dentries in nfs_atomic_open()",
                            "    - Revert \"nfs: ignore SB_RDONLY when remounting nfs\"",
                            "    - Revert \"nfs: clear SB_RDONLY before getting superblock\"",
                            "    - Revert \"nfs: ignore SB_RDONLY when mounting nfs\"",
                            "    - fs_context: drop the unused lsm_flags member",
                            "    - fs/nls: Fix inconsistency between utf8_to_utf32() and utf32_to_utf8()",
                            "    - platform/x86: asus-wmi: use brightness_set_blocking() for kbd led",
                            "    - ASoC: bcm: bcm63xx-pcm-whistler: Check return value of",
                            "      of_dma_configure()",
                            "    - ASoC: ak4458: Disable regulator when error happens",
                            "    - ASoC: ak5558: Disable regulator when error happens",
                            "    - blk-mq: Abort suspend when wakeup events are pending",
                            "    - block: fix comment for op_is_zone_mgmt() to include RESET_ALL",
                            "    - dma/pool: eliminate alloc_pages warning in atomic_pool_expand",
                            "    - ALSA: uapi: Fix typo in asound.h comment",
                            "    - ARM: 9464/1: fix input-only operand modification in",
                            "      load_unaligned_zeropad()",
                            "    - dm-raid: fix possible NULL dereference with undefined raid type",
                            "    - dm log-writes: Add missing set_freezable() for freezable kthread",
                            "    - efi/cper: Add a new helper function to print bitmasks",
                            "    - efi/cper: Adjust infopfx size to accept an extra space",
                            "    - efi/cper: align ARM CPER type with UEFI 2.9A/2.10 specs",
                            "    - ocfs2: fix memory leak in ocfs2_merge_rec_left()",
                            "    - usb: gadget: tegra-xudc: Always reinitialize data toggle when clear halt",
                            "    - usb: phy: Initialize struct usb_phy list_head",
                            "    - ASoC: fsl_xcvr: get channel status data when PHY is not exists",
                            "    - NFS: Fix missing unlock in nfs_unlink()",
                            "    - netfilter: nf_conncount: garbage collection is not skipped when jiffies",
                            "      wrap around",
                            "    - coresight: etm4x: Correct polling IDLE bit",
                            "    - spi: tegra210-quad: Fix validate combined sequence",
                            "    - spi: tegra210-quad: Fix X1_X2_X4 encoding and support x4 transfers",
                            "    - bpf, arm64: Do not audit capability check in do_jit()",
                            "    - btrfs: fix memory leak of fs_devices in degraded seed device path",
                            "    - x86/ptrace: Always inline trivial accessors",
                            "    - ACPI: property: Use ACPI functions in acpi_graph_get_next_endpoint()",
                            "      only",
                            "    - cpufreq: s5pv210: fix refcount leak",
                            "    - livepatch: Match old_sympos 0 and 1 in klp_find_func()",
                            "    - fs/ntfs3: Support timestamps prior to epoch",
                            "    - hfsplus: fix volume corruption issue for generic/070",
                            "    - hfsplus: fix volume corruption issue for generic/073",
                            "    - btrfs: scrub: always update btrfs_scrub_progress::last_physical",
                            "    - Bluetooth: btusb: Add new VID/PID 13d3/3533 for RTL8821CE",
                            "    - ipvlan: Ignore PACKET_LOOPBACK in handle_mode_l2()",
                            "    - broadcom: b44: prevent uninitialized value usage",
                            "    - netfilter: nf_conncount: fix leaked ct in error paths",
                            "    - nfc: pn533: Fix error code in pn533_acr122_poweron_rdr()",
                            "    - ethtool: use phydev variable",
                            "    - net/ethtool/ioctl: remove if n_stats checks from ethtool_get_phy_stats",
                            "    - net/ethtool/ioctl: split ethtool_get_phy_stats into multiple helpers",
                            "    - net/mlx5: fw_tracer, Add support for unrecognized string",
                            "    - net/mlx5: fw_tracer, Handle escaped percent properly",
                            "    - net: hns3: Align type of some variables with their print type",
                            "    - net: hns3: using the num_tqps to check whether tqp_index is out of range",
                            "      when vf get ring info from mbx",
                            "    - HID: input: map HID_GD_Z to ABS_DISTANCE for stylus/pen",
                            "    - Input: i8042 - add TUXEDO InfinityBook Max Gen10 AMD to i8042 quirk",
                            "      table",
                            "    - ACPI: CPPC: Fix missing PCC check for guaranteed_perf",
                            "    - spi: fsl-cpm: Check length parity before switching to 16 bit mode",
                            "    - mmc: sdhci-esdhc-imx: add alternate ARCH_S32 dependency to Kconfig",
                            "    - ALSA: vxpocket: Fix resource leak in vxpocket_probe error path",
                            "    - ALSA: pcmcia: Fix resource leak in snd_pdacf_probe error path",
                            "    - ipmi: Fix the race between __scan_channels() and deliver_response()",
                            "    - ipmi: Fix __scan_channels() failing to rescan channels",
                            "    - firmware: imx: scu-irq: Init workqueue before request mbox channel",
                            "    - ti-sysc: allow OMAP2 and OMAP4 timers to be reserved on AM33xx",
                            "    - clk: mvebu: cp110 add CLK_IGNORE_UNUSED to pcie_x10, pcie_x11 & pcie_x4",
                            "    - powerpc/addnote: Fix overflow on 32-bit builds",
                            "    - scsi: qla2xxx: Fix lost interrupts with qlini_mode=disabled",
                            "    - scsi: qla2xxx: Fix initiator mode with qlini_mode=exclusive",
                            "    - scsi: qla2xxx: Use reinit_completion on mbx_intr_comp",
                            "    - exfat: fix remount failure in different process environments",
                            "    - usbip: Fix locking bug in RT-enabled kernels",
                            "    - usb: xhci: limit run_graceperiod for only usb 3.0 devices",
                            "    - usb: usb-storage: No additional quirks need to be added to the EL-R12",
                            "      optical drive.",
                            "    - serial: sprd: Return -EPROBE_DEFER when uart clock is not ready",
                            "    - nvme-fc: don't hold rport lock when putting ctrl",
                            "    - platform/x86/intel/hid: Add Dell Pro Rugged 10/12 tablet to VGBS DMI",
                            "      quirks",
                            "    - vhost/vsock: improve RCU read sections around vhost_vsock_get()",
                            "    - mmc: sdhci-msm: Avoid early clock doubling during HS400 transition",
                            "    - lib/crypto: x86/blake2s: Fix 32-bit arg treated as 64-bit",
                            "    - block: rate-limit capacity change info log",
                            "    - floppy: fix for PAGE_SIZE != 4KB",
                            "    - fs/ntfs3: fix mount failure for sparse runs in run_unpack()",
                            "    - ktest.pl: Fix uninitialized var in config-bisect.pl",
                            "    - ext4: clear i_state_flags when alloc inode",
                            "    - ext4: fix incorrect group number assertion in mb_check_buddy",
                            "    - ext4: align max orphan file size with e2fsprogs limit",
                            "    - jbd2: use a weaker annotation in journal handling",
                            "    - media: v4l2-mem2mem: Fix outdated documentation",
                            "    - usb: usb-storage: Maintain minimal modifications to the bcdDevice range.",
                            "    - media: pvrusb2: Fix incorrect variable used in trace message",
                            "    - phy: broadcom: bcm63xx-usbh: fix section mismatches",
                            "    - USB: lpc32xx_udc: Fix error handling in probe",
                            "    - usb: phy: isp1301: fix non-OF device reference imbalance",
                            "    - usb: dwc3: of-simple: fix clock resource leak in dwc3_of_simple_probe",
                            "    - usb: renesas_usbhs: Fix a resource leak in usbhs_pipe_malloc()",
                            "    - intel_th: Fix error handling in intel_th_output_open",
                            "    - cpufreq: nforce2: fix reference count leak in nforce2",
                            "    - NFSD: use correct reservation type in nfsd4_scsi_fence_client",
                            "    - tools/testing/nvdimm: Use per-DIMM device handle",
                            "    - KVM: x86: WARN if hrtimer callback for periodic APIC timer fires with",
                            "      period=0",
                            "    - KVM: x86: Explicitly set new periodic hrtimer expiration in",
                            "      apic_timer_fn()",
                            "    - KVM: nSVM: Propagate SVM_EXIT_CR0_SEL_WRITE correctly for LMSW emulation",
                            "    - KVM: nSVM: Set exit_code_hi to -1 when synthesizing SVM_EXIT_ERR (failed",
                            "      VMRUN)",
                            "    - KVM: nSVM: Clear exit_code_hi in VMCB when synthesizing nested VM-Exits",
                            "    - PM: runtime: Do not clear needs_force_resume with enabled runtime PM",
                            "    - nfsd: Mark variable __maybe_unused to avoid W=1 build break",
                            "    - svcrdma: return 0 on success from svc_rdma_copy_inline_range",
                            "    - drm/amd/display: Use GFP_ATOMIC in dc_create_plane_state()",
                            "    - amba: tegra-ahb: Fix device leak on SMMU enable",
                            "    - soc: qcom: ocmem: fix device leak on lookup",
                            "    - soc: amlogic: canvas: fix device leak on lookup",
                            "    - rpmsg: glink: fix rpmsg device leak",
                            "    - i2c: amd-mp2: fix reference leak in MP2 PCI device",
                            "    - hwmon: (max16065) Use local variable to avoid TOCTOU",
                            "    - hwmon: (w83l786ng) Convert macros to functions to avoid TOCTOU",
                            "    - i40e: fix scheduling in set_rx_mode",
                            "    - i40e: Refactor argument of several client notification functions",
                            "    - i40e: Refactor argument of i40e_detect_recover_hung()",
                            "    - i40e: validate ring_len parameter against hardware-specific values",
                            "    - net: mdio: aspeed: move reg accessing part into separate functions",
                            "    - net: mdio: aspeed: add dummy read to avoid read-after-write issue",
                            "    - net: openvswitch: Avoid needlessly taking the RTNL on vport destroy",
                            "    - platform/x86: msi-laptop: add missing sysfs_remove_group()",
                            "    - platform/x86: ibm_rtl: fix EBDA signature search pointer arithmetic",
                            "    - genalloc.h: fix htmldocs warning",
                            "    - firewire: nosy: Fix dma_free_coherent() size",
                            "    - net: dsa: b53: skip multicast entries for fdb_dump()",
                            "    - net: bridge: Describe @tunnel_hash member in net_bridge_vlan_group",
                            "      struct",
                            "    - RDMA/efa: Remove possible negative shift",
                            "    - RDMA/core: Fix logic error in ib_get_gids_from_rdma_hdr()",
                            "    - RDMA/bnxt_re: Fix incorrect BAR check in bnxt_qplib_map_creq_db()",
                            "    - RDMA/bnxt_re: Fix IB_SEND_IP_CSUM handling in post_send",
                            "    - RDMA/bnxt_re: Fix to use correct page size for PDE table",
                            "    - RDMA/rtrs: Fix clt_path::max_pages_per_mr calculation",
                            "    - RDMA/bnxt_re: fix dma_free_coherent() pointer",
                            "    - selftests/ftrace: traceonoff_triggers: strip off names",
                            "    - ASoC: stm32: sai: fix device leak on probe",
                            "    - ASoC: qcom: q6asm-dai: perform correct state check before closing",
                            "    - ASoC: qcom: q6adm: the the copp device only during last instance",
                            "    - ASoC: qcom: qdsp6: q6asm-dai: set 10 ms period and buffer alignment.",
                            "    - iommu/apple-dart: fix device leak on of_xlate()",
                            "    - iommu/exynos: fix device leak on of_xlate()",
                            "    - iommu/ipmmu-vmsa: fix device leak on of_xlate()",
                            "    - iommu/mediatek-v1: fix device leak on probe_device()",
                            "    - iommu/mediatek: fix device leak on of_xlate()",
                            "    - iommu/omap: fix device leaks on probe_device()",
                            "    - iommu/sun50i: fix device leak on of_xlate()",
                            "    - iommu/tegra: fix device leak on probe_device()",
                            "    - HID: logitech-dj: Remove duplicate error logging",
                            "    - PCI/PM: Reinstate clearing state_saved in legacy and !PM codepaths",
                            "    - leds: leds-lp50xx: Allow LED 0 to be added to module bank",
                            "    - leds: leds-lp50xx: LP5009 supports 3 modules for a total of 9 LEDs",
                            "    - mfd: altera-sysmgr: Fix device leak on sysmgr regmap lookup",
                            "    - mfd: max77620: Fix potential IRQ chip conflict when probing two devices",
                            "    - media: rc: st_rc: Fix reset control resource leak",
                            "    - parisc: entry.S: fix space adjustment on interruption for 64-bit",
                            "      userspace",
                            "    - parisc: entry: set W bit for !compat tasks in syscall_restore_rfi()",
                            "    - dm-ebs: Mark full buffer dirty even on partial write",
                            "    - fbdev: gbefb: fix to use physical address instead of dma address",
                            "    - fbdev: pxafb: Fix multiple clamped values in pxafb_adjust_timing",
                            "    - fbdev: tcx.c fix mem_map to correct smem_start offset",
                            "    - media: cec: Fix debugfs leak on bus_register() failure",
                            "    - media: msp3400: Avoid possible out-of-bounds array accesses in",
                            "      msp3400c_thread()",
                            "    - media: TDA1997x: Remove redundant cancel_delayed_work in probe",
                            "    - media: i2c: ADV7604: Remove redundant cancel_delayed_work in probe",
                            "    - media: i2c: adv7842: Remove redundant cancel_delayed_work in probe",
                            "    - idr: fix idr_alloc() returning an ID out of range",
                            "    - fjes: Add missing iounmap in fjes_hw_init()",
                            "    - nfsd: Drop the client reference in client_states_open()",
                            "    - net: usb: sr9700: fix incorrect command used to write single register",
                            "    - drm/msm/a6xx: Fix out of bound IO access in a6xx_get_gmu_registers",
                            "    - drm/nouveau/dispnv50: Don't call drm_atomic_get_crtc_state() in",
                            "      prepare_fb",
                            "    - mm/damon/tests/vaddr-kunit: handle alloc failures in",
                            "      damon_test_split_evenly_fail()",
                            "    - mm/damon/tests/vaddr-kunit: handle alloc failures on",
                            "      damon_do_test_apply_three_regions()",
                            "    - mm/damon/tests/vaddr-kunit: handle alloc failures on",
                            "      damon_test_split_evenly_succ()",
                            "    - mm/damon/tests/core-kunit: handle allocation failures in",
                            "      damon_test_regions()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      damon_test_split_at()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      dasmon_test_merge_regions_of()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      damon_test_merge_two()",
                            "    - mm/damon/tests/core-kunit: handle memory failure from",
                            "      damon_test_target()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      damon_test_split_regions_of()",
                            "    - mm/damon/tests/core-kunit: handle memory alloc failure from",
                            "      damon_test_aggregate()",
                            "    - kbuild: Use CRC32 and a 1MiB dictionary for XZ compressed modules",
                            "    - virtio_console: fix order of fields cols and rows",
                            "    - usb: xhci: move link chain bit quirk checks into one helper function.",
                            "    - xhci: dbgtty: use IDR to support several dbc instances.",
                            "    - xhci: dbgtty: fix device unregister",
                            "    - jbd2: fix the inconsistency between checksum and data in memory for",
                            "      journal sb",
                            "    - btrfs: don't rewrite ret from inode_permission",
                            "    - wifi: mt76: Fix DTS power-limits on little endian systems",
                            "    - ALSA: wavefront: Clear substream pointers on close",
                            "    - ALSA: wavefront: Use standard print API",
                            "    - NFSD: Clear SECLABEL in the suppattr_exclcreat bitmap",
                            "    - KVM: nVMX: Immediately refresh APICv controls as needed on nested VM-",
                            "      Exit",
                            "    - xfs: fix a memory leak in xfs_buf_item_init()",
                            "    - f2fs: fix to detect recoverable inode during dryrun of",
                            "      find_fsync_dnodes()",
                            "    - f2fs: fix to propagate error from f2fs_enable_checkpoint()",
                            "    - usb: dwc3: keep susphy enabled during exit to avoid controller faults",
                            "    - mptcp: pm: ignore unknown endpoint flags",
                            "    - usb: ohci-nxp: Use helper function devm_clk_get_enabled()",
                            "    - usb: ohci-nxp: fix device leak on probe failure",
                            "    - ARM: dts: microchip: sama7g5: fix uart fifo size to 32",
                            "    - KVM: SVM: Mark VMCB_NPT as dirty on nested VMRUN",
                            "    - media: mediatek: vcodec: Fix a reference leak in",
                            "      mtk_vcodec_fw_vpu_init()",
                            "    - media: vpif_capture: fix section mismatch",
                            "    - media: verisilicon: Protect G2 HEVC decoder against invalid DPB index",
                            "    - media: samsung: exynos4-is: fix potential ABBA deadlock on init",
                            "    - media: renesas: rcar_drif: fix device node reference leak in",
                            "      rcar_drif_bond_enabled",
                            "    - powerpc/pseries/cmm: call balloon_devinfo_init() also without",
                            "      CONFIG_BALLOON_COMPACTION",
                            "    - PCI: brcmstb: Fix disabling L0s capability",
                            "    - iommu/qcom: fix device leak on of_xlate()",
                            "    - r8169: fix RTL8117 Wake-on-Lan in DASH mode",
                            "    - ASoC: stm: Use dev_err_probe() helper",
                            "    - ASoC: stm32: sai: Use the devm_clk_get_optional() helper",
                            "    - ASoC: stm32: sai: fix clk prepare imbalance on probe failure",
                            "    - mm/balloon_compaction: make balloon page compaction callbacks static",
                            "    - mm/balloon_compaction: we cannot have isolated pages in the balloon list",
                            "    - mm/balloon_compaction: convert balloon_page_delete() to",
                            "      balloon_page_finalize()",
                            "    - powerpc/pseries/cmm: adjust BALLOON_MIGRATE when migrating pages",
                            "    - lockd: fix vfs_test_lock() calls",
                            "    - drm/gma500: Remove unused helper psb_fbdev_fb_setcolreg()",
                            "    - KVM: arm64: sys_regs: disable -Wuninitialized-const-pointer warning",
                            "    - x86: remove __range_not_ok()",
                            "    - pwm: stm32: Always program polarity",
                            "    - ext4: factor out ext4_hash_info_init()",
                            "    - ext4: fix error message when rejecting the default hash",
                            "    - firmware: arm_scmi: Fix unused notifier-block in unregister",
                            "    - Revert \"iommu/amd: Skip enabling command/event buffers for kdump\"",
                            "    - net: ethtool: fix the error condition in ethtool_get_phy_stats_ethtool()",
                            "    - usb: gadget: lpc32xx_udc: fix clock imbalance in error path",
                            "    - atm: Fix dma_free_coherent() size",
                            "    - mei: me: add nova lake point S DID",
                            "    - lib/crypto: aes: Fix missing MMU protection for AES S-box",
                            "    - drm/pl111: Fix error handling in pl111_amba_probe",
                            "    - libceph: make calc_target() set t->paused, not just clear it",
                            "    - ext4: introduce ITAIL helper",
                            "    - csky: fix csky_cmpxchg_fixup not working",
                            "    - ARM: 9461/1: Disable HIGHPTE on PREEMPT_RT kernels",
                            "    - alpha: don't reference obsolete termio struct for TC* constants",
                            "    - NFSv4: ensure the open stateid seqid doesn't go backwards",
                            "    - NFS: Fix up the automount fs_context to use the correct cred",
                            "    - scsi: ipr: Enable/disable IRQD_NO_BALANCING during reset",
                            "    - scsi: Revert \"scsi: libsas: Fix exp-attached device scan after probe",
                            "      failure scanned in again after probe failed\"",
                            "    - arm64: dts: add off-on-delay-us for usdhc2 regulator",
                            "    - ARM: dts: imx6q-ba16: fix RTC interrupt level",
                            "    - netfilter: nft_synproxy: avoid possible data-race on update operation",
                            "    - netfilter: nf_tables: fix memory leak in nf_tables_newrule()",
                            "    - netfilter: nf_conncount: update last_gc only when GC has been performed",
                            "    - bridge: fix C-VLAN preservation in 802.1ad vlan_tunnel egress",
                            "    - inet: ping: Fix icmp out counting",
                            "    - netdev: preserve NETIF_F_ALL_FOR_ALL across TSO updates",
                            "    - net/mlx5e: Don't print error message due to invalid module",
                            "    - eth: bnxt: move and rename reset helpers",
                            "    - bnxt_en: Fix potential data corruption with HW GRO/LRO",
                            "    - HID: quirks: work around VID/PID conflict for appledisplay",
                            "    - net: enetc: fix build warning when PAGE_SIZE is greater than 128K",
                            "    - arp: do not assume dev_hard_header() does not change skb->head",
                            "    - NFS: trace: show TIMEDOUT instead of 0x6e",
                            "    - nfs_common: factor out nfs_errtbl and nfs_stat_to_errno",
                            "    - NFSD: Remove NFSERR_EAGAIN",
                            "    - pinctrl: qcom: lpass-lpi: Remove duplicate assignment of of_gpio_n_cells",
                            "    - pinctrl: qcom: lpass-lpi: mark the GPIO controller as sleeping",
                            "    - powercap: fix race condition in register_control_type()",
                            "    - powercap: fix sscanf() error return value handling",
                            "    - ASoC: fsl_sai: Add missing registers to cache default",
                            "    - scsi: sg: Fix occasional bogus elapsed time that exceeds timeout",
                            "    - firmware: imx: scu-irq: Set mu_resource_id before get handle",
                            "    - efi/cper: Fix cper_bits_to_str buffer handling and return value",
                            "    - NFS: unlink/rmdir shouldn't call d_delete() twice on ENOENT",
                            "    - NFS: add barriers when testing for NFS_FSDATA_BLOCKED",
                            "    - Linux 5.15.198",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71182",
                            "    - can: j1939: make j1939_session_activate() fail if device is no longer",
                            "      registered",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2022-49465",
                            "    - blk-throttle: Set BIO_THROTTLED when bio has been throttled",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71180",
                            "    - counter: interrupt-cnt: Drop IRQF_NO_THREAD flag",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22980",
                            "    - nfsd: provide locking for v4_end_grace",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-23021",
                            "    - net: usb: pegasus: fix memory leak in update_eth_regs_async()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22976",
                            "    - net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate",
                            "      in qfq_reset",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22977",
                            "    - net: sock: fix hardened usercopy panic in sock_recv_errqueue",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22982",
                            "    - net: mscc: ocelot: Fix crash when adding interface under a lag",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-23019",
                            "    - net: marvell: prestera: fix NULL dereference on devlink_alloc() failure",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-22121",
                            "    - ext4: fix out-of-bound read in ext4_xattr_inode_dec_ref_all()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22992",
                            "    - libceph: return the handler error from mon_handle_auth_done()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22991",
                            "    - libceph: make free_choose_arg_map() resilient to partial allocation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22990",
                            "    - libceph: replace overzealous BUG_ON in osdmap_apply_incremental()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22984",
                            "    - libceph: prevent potential out-of-bounds reads in handle_auth_done()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22978",
                            "    - wifi: avoid kernel-infoleak from struct iw_point",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-23020",
                            "    - net: 3com: 3c59x: fix possible null dereference in vortex_probe1()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2024-49968",
                            "    - ext4: filesystems without casefold feature cannot be mounted with",
                            "      siphash",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2024-36927",
                            "    - ipv4: Fix uninit-value access in __ip_make_skb()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2024-36903",
                            "    - ipv6: Fix potential uninit-value access in __ip6_make_skb()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-38556",
                            "    - HID: core: Harden s32ton() against conversion to 0 bits",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2024-46830",
                            "    - KVM: x86: Acquire kvm->srcu when handling KVM_SET_VCPU_EVENTS",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-38129",
                            "    - page_pool: Fix use-after-free in page_pool_recycle_in_ring",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2022-49635",
                            "    - drm/i915/selftests: fix subtraction overflow bug",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-22111",
                            "    - net: Remove RTNL dance for SIOCBRADDIF and SIOCBRDELIF.",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71127",
                            "    - wifi: mac80211: Discard Beacon frames to non-broadcast address",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71081",
                            "    - ASoC: stm32: sai: fix OF node leak on probe",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71078",
                            "    - powerpc/64s/slb: Fix SLB multihit issue during SLB preload",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68803",
                            "    - NFSD: NFSv4 file creation neglects setting ACL",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71120",
                            "    - SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in",
                            "      gss_read_proxy_verf",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71113",
                            "    - crypto: af_alg - zero initialize memory allocated via sock_kmalloc",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71068",
                            "    - svcrdma: bound check rq_pages index in inline path",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68821",
                            "    - fuse: fix readahead reclaim deadlock",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68796",
                            "    - f2fs: fix to avoid updating zero-sized extent in extent cache",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71105",
                            "    - f2fs: use global inline_xattr_slab instead of per-sb slab cache",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68344",
                            "    - ALSA: wavefront: Fix integer overflow in sample size validation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71077",
                            "    - tpm: Cap the number of PCR banks",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68282",
                            "    - usb: gadget: udc: fix use-after-free in usb_gadget_state_work",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-22022",
                            "    - usb: xhci: Apply the link chain quirk on NEC isoc endpoints",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-40110",
                            "    - drm/vmwgfx: Fix a null-ptr access in the cursor snooper",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-38022",
                            "    - RDMA/core: Fix \"KASAN: slab-use-after-free Read in ib_register_device\"",
                            "      problem",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71083",
                            "    - drm/ttm: Avoid NULL pointer deref for evicted BOs",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71079",
                            "    - net: nfc: fix deadlock between nfc_unregister_device and",
                            "      rfkill_fop_write",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71093",
                            "    - e1000: fix OOB in e1000_tbi_should_accept()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71084",
                            "    - RDMA/cm: Fix leaking the multicast GID table reference",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71096",
                            "    - RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71136",
                            "    - media: adv7842: Avoid possible out-of-bounds array accesses in",
                            "      adv7842_cp_log_status()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71133",
                            "    - RDMA/irdma: avoid invalid read in irdma_net_event",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71086",
                            "    - net: rose: fix invalid array index in rose_kill_by_device()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71097",
                            "    - ipv4: Fix reference count leak when using error routes with nexthop",
                            "      objects",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71085",
                            "    - ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71137",
                            "    - octeontx2-pf: fix \"UBSAN: shift-out-of-bounds error\"",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71094",
                            "    - net: usb: asix: validate PHY address before use",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71132",
                            "    - smc91x: fix broken irq-context in PREEMPT_RT",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71154",
                            "    - net: usb: rtl8150: fix memory leak on usb_submit_urb() failure",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71091",
                            "    - team: fix check for port enabled in",
                            "      team_queue_override_port_prio_changed()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71098",
                            "    - ip6_gre: make ip6gre_header() robust",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71082",
                            "    - Bluetooth: btusb: revert use of devm_kzalloc in btusb",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71131",
                            "    - crypto: seqiv - Do not use req->iv after crypto_aead_encrypt",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71087",
                            "    - iavf: fix off-by-one issues in iavf_config_rss_reg()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71111",
                            "    - hwmon: (w83791d) Convert macros to functions to avoid TOCTOU",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68814",
                            "    - io_uring: fix filename leak in __io_openat_prep()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68788",
                            "    - fsnotify: do not generate ACCESS/MODIFY events on child for special",
                            "      files",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71125",
                            "    - tracing: Do not register unsupported perf events",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71104",
                            "    - KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV",
                            "      timer",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71116",
                            "    - libceph: make decode_pool() more resilient against corrupted osdmaps",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71121",
                            "    - parisc: Do not reprogram affinitiy on ASP chip",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71102",
                            "    - scs: fix a wrong parameter in __scs_magic",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68804",
                            "    - platform/chrome: cros_ec_ishtp: Fix UAF after unbinding driver",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68771",
                            "    - ocfs2: fix kernel BUG in ocfs2_find_victim_chain",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68808",
                            "    - media: vidtv: initialize local pointers upon transfer of memory",
                            "      ownership",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68769",
                            "    - f2fs: fix return value of f2fs_recover_fsync_data()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71069",
                            "    - f2fs: invalidate dentry cache on failed whiteout creation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68782",
                            "    - scsi: target: Reset t_task_cdb pointer in error case",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71075",
                            "    - scsi: aic94xx: fix use-after-free in device removal path",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68818",
                            "    - scsi: Revert \"scsi: qla2xxx: Perform lockless command completion in",
                            "      abort path\"",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68797",
                            "    - char: applicom: fix NULL pointer dereference in ac_ioctl",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68819",
                            "    - media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68820",
                            "    - ext4: xattr: fix null pointer deref in ext4_raw_inode()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71147",
                            "    - KEYS: trusted: Fix a memory leak in tpm2_load_cmd",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71108",
                            "    - usb: typec: ucsi: Handle incorrect num_connectors capability",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71114",
                            "    - via_wdt: fix critical boot hang due to unnamed resource allocation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68783",
                            "    - ALSA: usb-mixer: us16x08: validate meter packet indices",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68776",
                            "    - net/hsr: fix NULL pointer dereference in prp_get_untagged_frame()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68777",
                            "    - Input: ti_am335x_tsc - fix off-by-one error in wire_order validation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71112",
                            "    - net: hns3: add VLAN id validation before using",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71064",
                            "    - net: hns3: using the num_tqps in the vf driver to apply for resources",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68816",
                            "    - net/mlx5: fw_tracer, Validate format string parameters",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68795",
                            "    - ethtool: Avoid overflowing userspace buffer on stats query",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68815",
                            "    - net/sched: ets: Remove drr class from the active list if it changes to",
                            "      strict",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68799",
                            "    - caif: fix integer underflow in cffrml_receive()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68813",
                            "    - ipvs: fix ipv4 null-ptr-deref in route error path",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68785",
                            "    - net: openvswitch: fix middle attribute validation in push_nsh() action",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68800",
                            "    - mlxsw: spectrum_mr: Fix use-after-free when updating multicast route",
                            "      stats",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68801",
                            "    - mlxsw: spectrum_router: Fix neighbour use-after-free",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71066",
                            "    - net/sched: ets: Always remove class from active list before deleting in",
                            "      ets_qdisc_change",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68787",
                            "    - netrom: Fix memory leak in nr_sendmsg()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68767",
                            "    - hfsplus: Verify inode mode when loading from disk",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68774",
                            "    - hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71118",
                            "    - ACPICA: Avoid walking the Namespace if start_node is NULL",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68780",
                            "    - sched/deadline: only set free_cpus for online runqueues",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68346",
                            "    - ALSA: dice: fix buffer overflow in detect_stream_formats()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68764",
                            "    - NFS: Automounted filesystems should inherit ro,noexec,nodev,sync flags",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68349",
                            "    - NFSv4/pNFS: Clear NFS_INO_LAYOUTCOMMIT in",
                            "      pnfs_mark_layout_stateid_invalid",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68325",
                            "    - net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68354",
                            "    - regulator: core: Protect regulator_supply_alias_list with",
                            "      regulator_list_mutex",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68758",
                            "    - backlight: led-bl: Add devlink to supplier LEDs",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68765",
                            "    - mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68740",
                            "    - ima: Handle error code returned by ima_filter_rule_match()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68362",
                            "    - wifi: rtl818x: rtl8187: Fix potential buffer underflow in",
                            "      rtl8187_rx_cb()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68759",
                            "    - wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68364",
                            "    - ocfs2: relax BUG() to ocfs2_error() in __ocfs2_move_extent()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68366",
                            "    - nbd: defer config unlock in nbd_genl_connect",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68367",
                            "    - macintosh/mac_hid: fix race condition in mac_hid_toggle_emumouse",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68372",
                            "    - nbd: defer config put in recv_work",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68746",
                            "    - spi: tegra210-quad: Fix timeout handling",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68724",
                            "    - crypto: asymmetric_keys - prevent overflow in asymmetric_key_generate_id",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68727",
                            "    - ntfs3: Fix uninit buffer allocated by __getname()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68728",
                            "    - ntfs3: fix uninit memory after failed mi_read in mi_format_new",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68757",
                            "    - drm/vgem-fence: Fix potential deadlock on release",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68732",
                            "    - gpu: host1x: Fix race in syncpt alloc/free",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68733",
                            "    - smack: fix bug: unprivileged task can create labels",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68254",
                            "    - staging: rtl8723bs: fix out-of-bounds read in OnBeacon ESR IE parsing",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68255",
                            "    - staging: rtl8723bs: fix stack buffer overflow in OnAssocReq IE parsing",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68257",
                            "    - comedi: check device's attached status in compat ioctls",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68258",
                            "    - comedi: multiq3: sanitize config options in multiq3_attach()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68332",
                            "    - comedi: c6xdigio: Fix invalid PNP driver unregistration",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68266",
                            "    - bfs: Reconstruct file type when loading from disk",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68335",
                            "    - comedi: pcl818: fix null-ptr-deref in pcl818_ai_cancel()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68261",
                            "    - ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68336",
                            "    - locking/spinlock/debug: Fix data-race in do_raw_write_lock",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68264",
                            "    - ext4: refresh inline data size before write operations",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68337",
                            "    - jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system",
                            "      corrupted",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662)",
                            "    - x86/bugs: Fix reporting of LFENCE retpoline",
                            "    - btrfs: scrub: replace max_t()/min_t() with clamp() in",
                            "      scrub_throttle_dev_io()",
                            "    - btrfs: always drop log root tree reference in btrfs_replay_log()",
                            "    - btrfs: use smp_mb__after_atomic() when forcing COW in",
                            "      create_pending_snapshot()",
                            "    - net: usb: asix_devices: Check return value of usbnet_get_endpoints",
                            "    - fbdev: atyfb: Check if pll_ops->init_pll failed",
                            "    - fbdev: pvr2fb: Fix leftover reference to ONCHIP_NR_DMA_CHANNELS",
                            "    - fbdev: valkyriefb: Fix reference count leak in valkyriefb_init",
                            "    - mptcp: restore window probe",
                            "    - ASoC: qdsp6: q6asm: do not sleep while atomic",
                            "    - wifi: ath10k: Fix memory leak on unsupported WMI command",
                            "    - drm/msm/a6xx: Fix GMU firmware parser",
                            "    - ALSA: usb-audio: fix control pipe direction",
                            "    - bpf: Do not audit capability check in do_jit()",
                            "    - riscv, libbpf: Add RISC-V (RV64) support to bpf_tracing.h",
                            "    - libbpf: Normalize PT_REGS_xxx() macro definitions",
                            "    - libbpf: Fix powerpc's stack register definition in bpf_tracing.h",
                            "    - drm/etnaviv: fix flush sequence logic",
                            "    - net: hns3: return error code when function fails",
                            "    - drm/amd/pm: fix smu table id bound check issue in smu_cmn_update_table()",
                            "    - drm/amd/pm/powerplay/smumgr: Fix PCIeBootLinkLevel value on Fiji",
                            "    - drm/amd/pm/powerplay/smumgr: Fix PCIeBootLinkLevel value on Iceland",
                            "    - block: fix op_is_zone_mgmt() to handle REQ_OP_ZONE_RESET_ALL",
                            "    - serial: 8250_dw: Use devm_add_action_or_reset()",
                            "    - serial: 8250_dw: handle reset control deassert error",
                            "    - dt-bindings: usb: dwc3-imx8mp: dma-range is required only for imx8mp",
                            "    - ravb: Exclude gPTP feature support for RZ/G2L",
                            "    - net: ravb: Enforce descriptor type ordering",
                            "    - can: gs_usb: increase max interface to U8_MAX",
                            "    - net: phy: dp83867: Disable EEE support as not implemented",
                            "    - x86/resctrl: Fix miscount of bandwidth event when reactivating",
                            "      previously unavailable RMID",
                            "    - xhci: dbc: Provide sysfs option to configure dbc descriptors",
                            "    - xhci: dbc: poll at different rate depending on data transfer activity",
                            "    - xhci: dbc: Allow users to modify DbC poll interval via sysfs",
                            "    - xhci: dbc: Improve performance by removing delay in transfer event",
                            "      polling.",
                            "    - xhci: dbc: Avoid event polling busyloop if pending rx transfers are",
                            "      inactive.",
                            "    - xhci: dbc: fix bogus 1024 byte prefix if ttyDBC read races with stall",
                            "      event",
                            "    - x86/boot: Compile boot code with -std=gnu11 too",
                            "    - arch: back to -std=gnu89 in < v5.18",
                            "    - Revert \"docs/process/howto: Replace C89 with C11\"",
                            "    - drm/sched: Fix race in drm_sched_entity_select_rq()",
                            "    - block: make REQ_OP_ZONE_OPEN a write operation",
                            "    - soc: aspeed: socinfo: Add AST27xx silicon IDs",
                            "    - soc: qcom: smem: Fix endian-unaware access of num_entries",
                            "    - spi: loopback-test: Don't use %pK through printk",
                            "    - soc: ti: pruss: don't use %pK through printk",
                            "    - bpf: Don't use %pK through printk",
                            "    - pinctrl: single: fix bias pull up/down handling in pin_config_set",
                            "    - mmc: host: renesas_sdhi: Fix the actual clock",
                            "    - memstick: Add timeout to prevent indefinite waiting",
                            "    - ACPI: video: force native for Lenovo 82K8",
                            "    - selftests/bpf: Fix bpf_prog_detach2 usage in test_lirc_mode2",
                            "    - arc: Fix __fls() const-foldability via __builtin_clzl()",
                            "    - irqchip/gic-v2m: Handle Multiple MSI base IRQ Alignment",
                            "    - ACPI: PRM: Skip handlers with NULL handler_address or NULL VA",
                            "    - ACPI: scan: Add Intel CVS ACPI HIDs to acpi_ignore_dep_ids[]",
                            "    - hwmon: (sbtsi_temp) AMD CPU extended temperature range support",
                            "    - power: supply: sbs-charger: Support multiple devices",
                            "    - mmc: sdhci-msm: Enable tuning for SDR50 mode for SD card",
                            "    - ACPICA: dispatcher: Use acpi_ds_clear_operands() in",
                            "      acpi_ds_call_control_method()",
                            "    - tee: allow a driver to allocate a tee_device without a pool",
                            "    - video: backlight: lp855x_bl: Set correct EPROM start for LP8556",
                            "    - tools/cpupower: fix error return value in cpupower_write_sysfs()",
                            "    - cpuidle: Fail cpuidle device registration if there is one already",
                            "    - clocksource/drivers/vf-pit: Replace raw_readl/writel to readl/writel",
                            "    - uprobe: Do not emulate/sstep original instruction when ip is changed",
                            "    - hwmon: (dell-smm) Add support for Dell OptiPlex 7040",
                            "    - tools/cpupower: Fix incorrect size in cpuidle_state_disable()",
                            "    - tools/power x86_energy_perf_policy: Fix incorrect fopen mode usage",
                            "    - tools/power x86_energy_perf_policy: Enhance HWP enable",
                            "    - tools/power x86_energy_perf_policy: Prefer driver HWP limits",
                            "    - mfd: stmpe: Remove IRQ domain upon removal",
                            "    - mfd: stmpe-i2c: Add missing MODULE_LICENSE",
                            "    - mfd: madera: Work around false-positive -Wininitialized warning",
                            "    - mfd: da9063: Split chip variant reading in two bus transactions",
                            "    - drm/amd/pm: Use cached metrics data on aldebaran",
                            "    - drm/amd/pm: Use cached metrics data on arcturus",
                            "    - drm/amdgpu/jpeg: Hold pg_lock before jpeg poweroff",
                            "    - drm/nouveau: replace snprintf() with scnprintf() in nvkm_snprintbf()",
                            "    - PCI: Disable MSI on RDC PCI to PCIe bridges",
                            "    - selftests/net: Replace non-standard __WORDSIZE with sizeof(long) * 8",
                            "    - selftests/net: Ensure assert() triggers in psock_tpacket.c",
                            "    - drm/amdkfd: return -ENOTTY for unsupported IOCTLs",
                            "    - media: pci: ivtv: Don't create fake v4l2_fh",
                            "    - drm/tidss: Use the crtc_* timings when programming the HW",
                            "    - drm/tidss: Set crtc modesetting parameters with adjusted mode",
                            "    - x86/vsyscall: Do not require X86_PF_INSTR to emulate vsyscall",
                            "    - net: stmmac: Check stmmac_hw_setup() in stmmac_resume()",
                            "    - thunderbolt: Use is_pciehp instead of is_hotplug_bridge",
                            "    - powerpc/eeh: Use result of error_detected() in uevent",
                            "    - bridge: Redirect to backup port when port is administratively down",
                            "    - drm/bridge: display-connector: don't set OP_DETECT for DisplayPorts",
                            "    - iio: adc: spear_adc: mask SPEAR_ADC_STATUS channel and avg sample before",
                            "      setting register",
                            "    - usb: gadget: f_ncm: Fix MAC assignment NCM ethernet",
                            "    - char: misc: Does not request module for miscdevice with dynamic minor",
                            "    - net: When removing nexthops, don't call synchronize_net if it is not",
                            "      necessary",
                            "    - net: Call trace_sock_exceed_buf_limit() for memcg failure with",
                            "      SK_MEM_RECV.",
                            "    - PCI/P2PDMA: Fix incorrect pointer usage in devm_kfree() call",
                            "    - ALSA: usb-audio: Add validation of UAC2/UAC3 effect units",
                            "    - rds: Fix endianness annotation for RDS_MPATH_HASH",
                            "    - scsi: mpi3mr: Fix controller init failure on fault during queue creation",
                            "    - scsi: pm80xx: Fix race condition caused by static variables",
                            "    - extcon: adc-jack: Fix wakeup source leaks on device unbind",
                            "    - drm/amdkfd: Tie UNMAP_LATENCY to queue_preemption",
                            "    - media: fix uninitialized symbol warnings",
                            "    - mips: lantiq: danube: add missing properties to cpu node",
                            "    - mips: lantiq: danube: add missing device_type in pci node",
                            "    - mips: lantiq: xway: sysctrl: rename stp clock",
                            "    - scsi: pm8001: Use int instead of u32 to store error codes",
                            "    - ptp: Limit time setting of PTP clocks",
                            "    - dmaengine: sh: setup_xref error handling",
                            "    - dmaengine: mv_xor: match alloc_wc and free_wc",
                            "    - dmaengine: dw-edma: Set status for callback_result",
                            "    - drm/msm/dsi/phy: Toggle back buffer resync after preparing PLL",
                            "    - drm/msm/dsi/phy_7nm: Fix missing initial VCO rate",
                            "    - ipv6: Add sanity checks on ipv6_devconf.rpl_seg_enabled",
                            "    - net: nfc: nci: Increase NCI_DATA_TIMEOUT to 3000 ms",
                            "    - net: call cond_resched() less often in __release_sock()",
                            "    - iommu/amd: Skip enabling command/event buffers for kdump",
                            "    - usb: gadget: f_hid: Fix zero length packet transfer",
                            "    - drm/msm: make sure to not queue up recovery more than once",
                            "    - net: phy: marvell: Fix 88e1510 downshift counter errata",
                            "    - phy: cadence: cdns-dphy: Enable lower resolutions in dphy",
                            "    - phy: rockchip: phy-rockchip-inno-csidphy: allow writes to grf register 0",
                            "    - net: sh_eth: Disable WoL if system can not suspend",
                            "    - media: redrat3: use int type to store negative error codes",
                            "    - selftests: traceroute: Use require_command()",
                            "    - netfilter: nf_reject: don't reply to icmp error messages",
                            "    - x86/kvm: Prefer native qspinlock for dedicated vCPUs irrespective of",
                            "      PV_UNHALT",
                            "    - selftests: Disable dad for ipv6 in fcnal-test.sh",
                            "    - eth: 8139too: Make 8139TOO_PIO depend on !NO_IOPORT_MAP",
                            "    - [Config] Disable CONFIG_8139TOO_PIO for armhf",
                            "    - selftests: Replace sleep with slowwait",
                            "    - net/cls_cgroup: Fix task_get_classid() during qdisc run",
                            "    - drm/amdgpu: Use memdup_array_user in amdgpu_cs_wait_fences_ioctl",
                            "    - selftests/Makefile: include $(INSTALL_DEP_TARGETS) in clean target to",
                            "      clean net/lib dependency",
                            "    - scsi: lpfc: Check return status of lpfc_reset_flush_io_context during",
                            "      TGT_RESET",
                            "    - scsi: lpfc: Remove ndlp kref decrement clause for F_Port_Ctrl in",
                            "      lpfc_cleanup",
                            "    - scsi: lpfc: Define size of debugfs entry for xri rebalancing",
                            "    - allow finish_no_open(file, ERR_PTR(-E...))",
                            "    - usb: mon: Increase BUFF_MAX to 64 MiB to support multi-MB URBs",
                            "    - usb: xhci: plat: Facilitate using autosuspend for xhci plat devices",
                            "    - ipv6: np->rxpmtu race annotation",
                            "    - net: ethernet: microchip: sparx5: make it selectable for ARCH_LAN969X",
                            "    - iommu/vt-d: Replace snprintf with scnprintf in dmar_latency_snapshot()",
                            "    - wifi: ath10k: Fix connection after GTK rekeying",
                            "    - net: intel: fm10k: Fix parameter idx set but not used",
                            "    - r8169: set EEE speed down ratio to 1",
                            "    - sparc/module: Add R_SPARC_UA64 relocation handling",
                            "    - remoteproc: qcom: q6v5: Avoid handling handover twice",
                            "    - NFSv4: handle ERR_GRACE on delegation recalls",
                            "    - NFSv4.1: fix mount hang after CREATE_SESSION failure",
                            "    - scsi: libfc: Fix potential buffer overflow in fc_ct_ms_fill()",
                            "    - net: macb: avoid dealing with endianness in macb_set_hwaddr()",
                            "    - ALSA: usb-audio: add mono main switch to Presonus S1824c",
                            "    - exfat: limit log print for IO error",
                            "    - page_pool: Clamp pool size to max 16K pages",
                            "    - ACPICA: Update dsmethod.c to get rid of unused variable warning",
                            "    - RDMA/irdma: Fix SD index calculation",
                            "    - RDMA/irdma: Remove unused struct irdma_cq fields",
                            "    - RDMA/irdma: Set irdma_cq cq_num field during CQ create",
                            "    - RDMA/hns: Fix wrong WQE data when QP wraps around",
                            "    - btrfs: mark dirty extent range for out of bound prealloc extents",
                            "    - fs/hpfs: Fix error code for new_inode() failure in",
                            "      mkdir/create/mknod/symlink",
                            "    - um: Fix help message for ssl-non-raw",
                            "    - rtc: pcf2127: clear minute/second interrupt",
                            "    - ARM: at91: pm: save and restore ACR during PLL disable/enable",
                            "    - clk: at91: clk-master: Add check for divide by 3",
                            "    - clk: ti: am33xx: keep WKUP_DEBUGSS_CLKCTRL enabled",
                            "    - 9p: fix /sys/fs/9p/caches overwriting itself",
                            "    - cpufreq: tegra186: Initialize all cores to max frequencies",
                            "    - 9p: sysfs_init: don't hardcode error to ENOMEM",
                            "    - ACPI: property: Return present device nodes only on fwnode interface",
                            "    - ASoC: meson: aiu-encoder-i2s: fix bit clock polarity",
                            "    - ceph: add checking of wait_for_completion_killable() return value",
                            "    - ALSA: hda/realtek: Audio disappears on HP 15-fc000 after warm boot again",
                            "    - Revert \"wifi: ath10k: avoid unnecessary wait for service ready message\"",
                            "    - riscv: ptdump: use seq_puts() in pt_dump_seq_puts() macro",
                            "    - net: dsa: tag_brcm: legacy: fix untagged rx on unbridged ports for",
                            "      bcm63xx",
                            "    - selftests/net: fix out-of-order delivery of FIN in gro:tcp test",
                            "    - selftests/net: fix GRO coalesce test and add ext header coalesce tests",
                            "    - selftests/net: use destination options instead of hop-by-hop",
                            "    - netdevsim: add Makefile for selftests",
                            "    - selftests: netdevsim: Fix ethtool-coalesce.sh fail by installing",
                            "      ethtool-common.sh",
                            "    - net: vlan: sync VLAN features with lower device",
                            "    - net: dsa: b53: fix resetting speed and pause on forced link",
                            "    - net: dsa: b53: fix enabling ip multicast",
                            "    - net: dsa: b53: stop reading ARL entries if search is done",
                            "    - sctp: Hold RCU read lock while iterating over address list",
                            "    - sctp: Hold sock lock while iterating over address list",
                            "    - bnxt_en: PTP: Refactor PTP initialization functions",
                            "    - bnxt_en: Fix a possible memory leak in bnxt_ptp_init",
                            "    - tracing: Fix memory leaks in create_field_var()",
                            "    - rtc: rx8025: fix incorrect register reference",
                            "    - lib/crypto: curve25519-hacl64: Fix older clang KASAN workaround for GCC",
                            "    - extcon: adc-jack: Cleanup wakeup source only if it was enabled",
                            "    - selftests: netdevsim: set test timeout to 10 minutes",
                            "    - compiler_types: Move unused static inline functions warning to W=2",
                            "    - RISC-V: clear hot-unplugged cores from all task mm_cpumasks to avoid",
                            "      rfence errors",
                            "    - NFS4: Fix state renewals missing after boot",
                            "    - HID: quirks: avoid Cooler Master MM712 dongle wakeup bug",
                            "    - NFS: check if suid/sgid was cleared after a write as needed",
                            "    - ASoC: max98090/91: fixed max98091 ALSA widget powering up/down",
                            "    - net: fec: correct rx_bytes statistic for the case SHIFT16 is set",
                            "    - Bluetooth: 6lowpan: fix BDADDR_LE vs ADDR_LE_DEV address type confusion",
                            "    - Bluetooth: 6lowpan: Don't hold spin lock over sleeping functions",
                            "    - net/smc: fix mismatch between CLC header and proposal",
                            "    - net: mdio: fix resource leak in mdiobus_register_device()",
                            "    - wifi: mac80211: skip rate verification for not captured PSDUs",
                            "    - net: sched: act: move global static variable net_id to tc_action_ops",
                            "    - net: sched: act_connmark: get rid of tcf_connmark_walker and",
                            "      tcf_connmark_search",
                            "    - net/sched: act_connmark: transition to percpu stats and rcu",
                            "    - net_sched: act_connmark: use RCU in tcf_connmark_dump()",
                            "    - net/mlx5e: Fix maxrate wraparound in threshold between units",
                            "    - net/mlx5e: Fix wraparound in rate limiting for values above 255 Gbps",
                            "    - net_sched: limit try_bulk_dequeue_skb() batches",
                            "    - hsr: Fix supervision frame sending on HSRv0",
                            "    - Bluetooth: L2CAP: export l2cap_chan_hold for modules",
                            "    - acpi,srat: Fix incorrect device handle check for Generic Initiator",
                            "    - regulator: fixed: fix GPIO descriptor leak on register failure",
                            "    - ASoC: cs4271: Fix regulator leak on probe failure",
                            "    - NFSv4: Fix an incorrect parameter when calling nfs4_call_sync()",
                            "    - mptcp: pm: in-kernel: C-flag: handle late ADD_ADDR",
                            "    - lib/crypto: arm/curve25519: Disable on CPU_BIG_ENDIAN",
                            "    - mtd: onenand: Pass correct pointer to IRQ handler",
                            "    - HID: hid-ntrig: Prevent memory leak in ntrig_report_version()",
                            "    - gcov: add support for GCC 15",
                            "    - strparser: Fix signed/unsigned mismatch bug",
                            "    - ALSA: usb-audio: Fix missing unlock at error path of maxpacksize check",
                            "    - spi: Try to get ACPI GPIO IRQ earlier",
                            "    - EDAC/altera: Handle OCRAM ECC enable after warm reset",
                            "    - EDAC/altera: Use INTTEST register for Ethernet and USB SBE injection",
                            "    - net/sched: act_connmark: handle errno on tcf_idr_check_alloc",
                            "    - HID: quirks: work around VID/PID conflict for 0x4c4a/0x4155",
                            "    - exfat: check return value of sb_min_blocksize in exfat_read_boot_sector",
                            "    - MIPS: Malta: Fix !EVA SOC-it PCI MMIO",
                            "    - drm/tegra: dc: Fix reference leak in tegra_dc_couple()",
                            "    - mlxsw: spectrum: Fix memory leak in mlxsw_sp_flower_stats()",
                            "    - net: dsa: hellcreek: fix missing error handling in LED registration",
                            "    - platform/x86/intel/speed_select_if: Convert PCIBIOS_* return codes to",
                            "      errnos",
                            "    - kernel.h: Move ARRAY_SIZE() to a separate header",
                            "    - scsi: core: Fix a regression triggered by scsi_host_busy()",
                            "    - selftests: net: use BASH for bareudp testing",
                            "    - net: tls: Cancel RX async resync request on rcd_delta overflow",
                            "    - kconfig/mconf: Initialize the default locale at startup",
                            "    - kconfig/nconf: Initialize the default locale at startup",
                            "    - mm/mm_init: fix hash table order logging in alloc_large_system_hash()",
                            "    - ALSA: usb-audio: fix uac2 clock source at terminal parser",
                            "    - tracing/tools: Fix incorrcet short option in usage text for --threads",
                            "    - uio_hv_generic: Set event for all channels on the device",
                            "    - Makefile.compiler: replace cc-ifversion with compiler-specific macros",
                            "    - btrfs: add helper to truncate inode items when logging inode",
                            "    - mmc: sdhci-of-dwcmshc: Change DLL_STRBIN_TAPNUM_DEFAULT to 0x4",
                            "    - pmdomain: imx: Fix reference count leak in imx_gpc_remove",
                            "    - pmdomain: samsung: plug potential memleak during probe",
                            "    - selftests: mptcp: connect: fix fallback note due to OoO",
                            "    - mptcp: Disallow MPTCP subflows from sockmap",
                            "    - usb: deprecate the third argument of usb_maxpacket()",
                            "    - Input: remove third argument of usb_maxpacket()",
                            "    - ata: libata-scsi: Fix system suspend for a security locked drive",
                            "    - dt-bindings: pinctrl: toshiba,visconti: Fix number of items in groups",
                            "    - mptcp: fix ack generation for fallback msk",
                            "    - mptcp: fix premature close in case of fallback",
                            "    - mptcp: do not fallback when OoO is present",
                            "    - Revert \"block: Move checking GENHD_FL_NO_PART to bdev_add_partition()\"",
                            "    - Revert \"block: don't add or resize partition on the disk with",
                            "      GENHD_FL_NO_PART\"",
                            "    - Bluetooth: SMP: Fix not generating mackey and ltk when repairing",
                            "    - net: aquantia: Add missing descriptor cache invalidation on ATL2",
                            "    - net/mlx5e: Fix validation logic in rate limiting",
                            "    - net: dsa: sja1105: Convert to mdiobus_c45_read",
                            "    - net: dsa: sja1105: simplify static configuration reload",
                            "    - net: dsa: sja1105: fix SGMII linking at 10M or 100M but not passing",
                            "      traffic",
                            "    - mailbox: mailbox-test: Fix debugfs_create_dir error checking",
                            "    - spi: bcm63xx: fix premature CS deassertion on RX-only transactions",
                            "    - Revert \"perf/x86: Always store regs->ip in perf_callchain_kernel()\"",
                            "    - iio: imu: st_lsm6dsx: fix array size for st_lsm6dsx_settings fields",
                            "    - iio:common:ssp_sensors: Fix an error handling path ssp_probe()",
                            "    - MIPS: mm: Prevent a TLB shutdown on initial uniquification",
                            "    - can: sja1000: fix max irq loop handling",
                            "    - can: sun4i_can: sun4i_can_interrupt(): fix max irq loop handling",
                            "    - dm-verity: fix unreliable memory allocation",
                            "    - drivers/usb/dwc3: fix PCI parent check",
                            "    - thunderbolt: Add support for Intel Wildcat Lake",
                            "    - slimbus: ngd: Fix reference count leak in qcom_slim_ngd_notify_slaves",
                            "    - serial: amba-pl011: prefer dma_mapping_error() over explicit address",
                            "      checking",
                            "    - usb: cdns3: Fix double resource release in cdns3_pci_probe",
                            "    - USB: storage: Remove subclass and protocol overrides from Novatek quirk",
                            "    - xhci: dbgtty: Fix data corruption when transmitting data form DbC to",
                            "      host",
                            "    - USB: serial: ftdi_sio: add support for u-blox EVK-M101",
                            "    - USB: serial: option: add support for Rolling RW101R-GL",
                            "    - drm: sti: fix device leaks at component probe",
                            "    - staging: rtl8712: Remove driver using deprecated API wext",
                            "    - [Config] Remove config option for CONFIG_R8712U",
                            "    - selftests: mptcp: join: rm: set backup flag",
                            "    - mptcp: avoid unneeded subflow-level drops",
                            "    - usb: renesas_usbhs: Convert to platform remove callback returning void",
                            "    - usb: typec: ucsi: psy: Set max current to zero when disconnected",
                            "    - selftests/bpf: Don't rely on preserving volatile in PT_REGS macros in",
                            "      loop3",
                            "    - libbpf: Fix riscv register names",
                            "    - libbpf, riscv: Use a0 for RC register",
                            "    - libbpf: Fix invalid return address register in s390",
                            "    - Linux 5.15.197",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2024-47666",
                            "    - scsi: pm80xx: Set phy->enable_completion only when we",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68327",
                            "    - usb: renesas_usbhs: Fix synchronous external abort on unbind",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68295",
                            "    - smb: client: fix memory leak in cifs_construct_tcon()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68227",
                            "    - mptcp: Fix proto fallback detection with BPF",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68284",
                            "    - libceph: prevent potential out-of-bounds writes in",
                            "      handle_auth_session_key()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68285",
                            "    - libceph: fix potential use-after-free in have_mon_and_osd_map()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68286",
                            "    - drm/amd/display: Check NULL before accessing",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68287",
                            "    - usb: dwc3: Fix race condition between concurrent dwc3_remove_requests()",
                            "      call paths",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68331",
                            "    - usb: uas: fix urb unmapping issue when the uas device is remove during",
                            "      ongoing data transfer",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40345",
                            "    - usb: storage: sddr55: Reject out-of-bound new_pba",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68288",
                            "    - usb: storage: Fix memory leak in USB bulk transport",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68289",
                            "    - usb: gadget: f_eem: Fix memory leak in eem_unwrap",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68290",
                            "    - most: usb: fix double free on late probe failure",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68328",
                            "    - firmware: stratix10-svc: fix bug in saving controller data",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68339",
                            "    - atm/fore200e: Fix possible data race in fore200e_open()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68330",
                            "    - iio: accel: bmc150: Fix irq assumption regression",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68301",
                            "    - net: atlantic: fix fragment overflow handling in RX path",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68302",
                            "    - net: sxgbe: fix potential NULL dereference in sxgbe_rx()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68303",
                            "    - platform/x86: intel: punit_ipc: fix memory corruption",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68308",
                            "    - can: kvaser_usb: leaf: Fix potential infinite loop in command parsers",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40257",
                            "    - mptcp: fix a race in mptcp_pm_del_add_timer()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68217",
                            "    - Input: pegasus-notetaker - fix potential out-of-bounds access",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68204",
                            "    - pmdomain: arm: scmi: Fix genpd leak on provider registration failure",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68245",
                            "    - net: netpoll: fix incorrect refcount handling causing incorrect cleanup",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2024-37354",
                            "    - btrfs: fix crash on racing fsync and size-extending write into prealloc",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68220",
                            "    - net: ethernet: ti: netcp: Standardize knav_dma_open_channel to return",
                            "      NULL on error",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40272",
                            "    - mm/secretmem: fix use-after-free race in fault handler",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40248",
                            "    - vsock: Ignore signal/timeout on connect() if already established",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40252",
                            "    - net: qlogic/qede: fix potential out-of-bounds read in qede_tpa_cont()",
                            "      and qede_tpa_end()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40253",
                            "    - s390/ctcm: Fix double-kfree",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40254",
                            "    - net: openvswitch: remove never-working support for setting nsh fields",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40258",
                            "    - mptcp: fix race condition in mptcp_schedule_work()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68229",
                            "    - scsi: target: tcm_loop: Fix segfault in tcm_loop_tpg_address_show()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40259",
                            "    - scsi: sg: Do not sleep in atomic context",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40261",
                            "    - nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40262",
                            "    - Input: imx_sc_key - fix memory corruption on unload",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40263",
                            "    - Input: cros_ec_keyb - fix an invalid memory access",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40264",
                            "    - be2net: pass wrb_params in case of OS2BMC",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68238",
                            "    - mtd: rawnand: cadence: fix DMA device NULL pointer dereference",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68734",
                            "    - isdn: mISDN: hfcsusb: fix memory leak in hfcsusb_probe()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40269",
                            "    - ALSA: usb-audio: Fix potential overflow of PCM transfer buffer",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40271",
                            "    - fs/proc: fix uaf in proc_readdir_de()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68241",
                            "    - ipv4: route: Prevent rt_bind_exception() from rebinding stale fnhe",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40273",
                            "    - NFSD: free copynotify stateid in nfs4_free_ol_stateid()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40040",
                            "    - mm/ksm: fix flag-dropping behavior in ksm_madvise",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68200",
                            "    - bpf: Add bpf_prog_run_data_pointers()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40275",
                            "    - ALSA: usb-audio: Fix NULL pointer dereference in",
                            "      snd_usb_mixer_controls_badd",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40277",
                            "    - drm/vmwgfx: Validate command header size against SVGA_CMD_MAX_DATASIZE",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40278",
                            "    - net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-",
                            "      infoleak",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40279",
                            "    - net: sched: act_connmark: initialize struct tc_ife to fix kernel leak",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40280",
                            "    - tipc: Fix use-after-free in tipc_mon_reinit_self().",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40281",
                            "    - sctp: prevent possible shift-out-of-bounds in sctp_transport_update_rto",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40282",
                            "    - Bluetooth: 6lowpan: reset link-local header on ipv6 recv path",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40283",
                            "    - Bluetooth: btusb: reorder cleanup in btusb_disconnect to avoid UAF",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68244",
                            "    - drm/i915: Avoid lock inversion when pinning to GGTT on CHV/BXT+VTD",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68192",
                            "    - net: usb: qmi_wwan: initialize MAC header offset in qmimux_rx_fixup",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40331",
                            "    - sctp: Prevent TOCTOU out-of-bounds write",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40304",
                            "    - fbdev: Add bounds checking in bit_putcs to fix vmalloc-out-of-bounds",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40306",
                            "    - orangefs: fix xattr related buffer overflow...",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40308",
                            "    - Bluetooth: bcsp: receive data only if registered",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40309",
                            "    - Bluetooth: SCO: Fix UAF on sco_conn_free",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40361",
                            "    - fs: ext4: change GFP_KERNEL to GFP_NOFS to avoid deadlock",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68185",
                            "    - nfs4_setup_readdir(): insufficient locking for ->d_parent->d_inode",
                            "      dereferencing",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68176",
                            "    - PCI: cadence: Check for the existence of cdns_pcie::ops before using it",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68168",
                            "    - jfs: fix uninitialized waitqueue in transaction manager",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40312",
                            "    - jfs: Verify inode mode when loading from disk",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68321",
                            "    - page_pool: always add GFP_NOWARN for ATOMIC allocations",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68191",
                            "    - udp_tunnel: use netdev_warn() instead of netdev_WARN()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40313",
                            "    - ntfs3: pretend $Extend records as regular files",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40314",
                            "    - usb: cdns3: gadget: Use-after-free during failed initialization and exit",
                            "      of cdnsp gadget",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68194",
                            "    - media: imon: make send_packet() more robust",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40363",
                            "    - net: ipv6: fix field-spanning memcpy warning in AH output",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40342",
                            "    - nvme-fc: use lock accessing port_state and rport state",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40343",
                            "    - nvmet-fc: avoid scheduling association deletion twice",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68177",
                            "    - cpufreq/longhaul: handle NULL policy in longhaul_exit",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40360",
                            "    - drm/sysfb: Do not dereference NULL pointer in plane reset",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40315",
                            "    - usb: gadget: f_fs: Fix epfile null pointer access after ep enable.",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40317",
                            "    - regmap: slimbus: fix bus_context pointer in regmap init calls",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68312",
                            "    - usbnet: Prevents free active kevent",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40319",
                            "    - bpf: Sync pending IRQ work before freeing ring buffer",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40321",
                            "    - wifi: brcmfmac: fix crash while sending Action Frames in standalone AP",
                            "      Mode",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40322",
                            "    - fbdev: bitblit: bound-check glyph index in bit_putcs*",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40211",
                            "    - ACPI: video: Fix use-after-free in acpi_video_switch_brightness()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40324",
                            "    - NFSD: Fix crash in nfsd4_read_release()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40083",
                            "    - net/sched: sch_qfq: Fix null-deref in agg_dequeue",
                            "",
                            "  * CVE-2024-41014",
                            "    - xfs: add bounds checking to xlog_recover_process_data",
                            "",
                            "  * CVE-2022-49267",
                            "    - mmc: core: use sysfs_emit() instead of sprintf()",
                            "",
                            "  * CVE-2025-21780",
                            "    - drm/amdgpu: avoid buffer overflow attach in smu_sys_set_pp_table()",
                            ""
                        ],
                        "package": "linux",
                        "version": "5.15.0-172.182",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2141059,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662
                        ],
                        "author": "Edoardo Canepa <edoardo.canepa@canonical.com>",
                        "date": "Sat, 07 Feb 2026 09:17:42 +0100"
                    }
                ],
                "notes": "linux-headers-5.15.0-173-generic version '5.15.0-173.183' (source package linux version '5.15.0-173.183') was added. linux-headers-5.15.0-173-generic version '5.15.0-173.183' has the same source package name, linux, as removed package linux-headers-5.15.0-171. As such we can use the source package version of the removed package, '5.15.0-171.181', as the starting point in our changelog diff. Kernel packages are an example of where the binary package name changes for the same source package. Using the removed package source package version as our starting point means we can still get meaningful changelog diffs even for what appears to be a new package.",
                "is_version_downgrade": false
            },
            {
                "name": "linux-image-5.15.0-173-generic",
                "from_version": {
                    "source_package_name": "linux-signed",
                    "source_package_version": "5.15.0-171.181",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux-signed",
                    "source_package_version": "5.15.0-173.183",
                    "version": "5.15.0-173.183"
                },
                "cves": [],
                "launchpad_bugs_fixed": [
                    1786013
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Main version: 5.15.0-173.183",
                            ""
                        ],
                        "package": "linux-signed",
                        "version": "5.15.0-173.183",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Mehmet Basaran <mehmet.basaran@canonical.com>",
                        "date": "Fri, 06 Mar 2026 16:16:00 +0300"
                    },
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Main version: 5.15.0-172.182",
                            "",
                            "  * Packaging resync (LP: #1786013)",
                            "    - [Packaging] debian/tracking-bug -- resync from main package",
                            ""
                        ],
                        "package": "linux-signed",
                        "version": "5.15.0-172.182",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            1786013
                        ],
                        "author": "Edoardo Canepa <edoardo.canepa@canonical.com>",
                        "date": "Sat, 07 Feb 2026 09:18:23 +0100"
                    }
                ],
                "notes": "linux-image-5.15.0-173-generic version '5.15.0-173.183' (source package linux-signed version '5.15.0-173.183') was added. linux-image-5.15.0-173-generic version '5.15.0-173.183' has the same source package name, linux-signed, as removed package linux-image-5.15.0-171-generic. As such we can use the source package version of the removed package, '5.15.0-171.181', as the starting point in our changelog diff. Kernel packages are an example of where the binary package name changes for the same source package. Using the removed package source package version as our starting point means we can still get meaningful changelog diffs even for what appears to be a new package.",
                "is_version_downgrade": false
            },
            {
                "name": "linux-modules-5.15.0-173-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.15.0-171.181",
                    "version": null
                },
                "to_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.15.0-173.183",
                    "version": "5.15.0-173.183"
                },
                "cves": [
                    {
                        "cve": "CVE-2025-71182",
                        "url": "https://ubuntu.com/security/CVE-2025-71182",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: j1939: make j1939_session_activate() fail if device is no longer registered  syzbot is still reporting    unregister_netdevice: waiting for vcan0 to become free. Usage count = 2  even after commit 93a27b5891b8 (\"can: j1939: add missing calls in NETDEV_UNREGISTER notification handler\") was added. A debug printk() patch found that j1939_session_activate() can succeed even after j1939_cancel_active_session() from j1939_netdev_notify(NETDEV_UNREGISTER) has completed.  Since j1939_cancel_active_session() is processed with the session list lock held, checking ndev->reg_state in j1939_session_activate() with the session list lock held can reliably close the race window.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2022-49465",
                        "url": "https://ubuntu.com/security/CVE-2022-49465",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  blk-throttle: Set BIO_THROTTLED when bio has been throttled  1.In current process, all bio will set the BIO_THROTTLED flag after __blk_throtl_bio().  2.If bio needs to be throttled, it will start the timer and stop submit bio directly. Bio will submit in blk_throtl_dispatch_work_fn() when the timer expires.But in the current process, if bio is throttled. The BIO_THROTTLED will be set to bio after timer start. If the bio has been completed, it may cause use-after-free blow.  BUG: KASAN: use-after-free in blk_throtl_bio+0x12f0/0x2c70 Read of size 2 at addr ffff88801b8902d4 by task fio/26380   dump_stack+0x9b/0xce  print_address_description.constprop.6+0x3e/0x60  kasan_report.cold.9+0x22/0x3a  blk_throtl_bio+0x12f0/0x2c70  submit_bio_checks+0x701/0x1550  submit_bio_noacct+0x83/0xc80  submit_bio+0xa7/0x330  mpage_readahead+0x380/0x500  read_pages+0x1c1/0xbf0  page_cache_ra_unbounded+0x471/0x6f0  do_page_cache_ra+0xda/0x110  ondemand_readahead+0x442/0xae0  page_cache_async_ra+0x210/0x300  generic_file_buffered_read+0x4d9/0x2130  generic_file_read_iter+0x315/0x490  blkdev_read_iter+0x113/0x1b0  aio_read+0x2ad/0x450  io_submit_one+0xc8e/0x1d60  __se_sys_io_submit+0x125/0x350  do_syscall_64+0x2d/0x40  entry_SYSCALL_64_after_hwframe+0x44/0xa9  Allocated by task 26380:  kasan_save_stack+0x19/0x40  __kasan_kmalloc.constprop.2+0xc1/0xd0  kmem_cache_alloc+0x146/0x440  mempool_alloc+0x125/0x2f0  bio_alloc_bioset+0x353/0x590  mpage_alloc+0x3b/0x240  do_mpage_readpage+0xddf/0x1ef0  mpage_readahead+0x264/0x500  read_pages+0x1c1/0xbf0  page_cache_ra_unbounded+0x471/0x6f0  do_page_cache_ra+0xda/0x110  ondemand_readahead+0x442/0xae0  page_cache_async_ra+0x210/0x300  generic_file_buffered_read+0x4d9/0x2130  generic_file_read_iter+0x315/0x490  blkdev_read_iter+0x113/0x1b0  aio_read+0x2ad/0x450  io_submit_one+0xc8e/0x1d60  __se_sys_io_submit+0x125/0x350  do_syscall_64+0x2d/0x40  entry_SYSCALL_64_after_hwframe+0x44/0xa9  Freed by task 0:  kasan_save_stack+0x19/0x40  kasan_set_track+0x1c/0x30  kasan_set_free_info+0x1b/0x30  __kasan_slab_free+0x111/0x160  kmem_cache_free+0x94/0x460  mempool_free+0xd6/0x320  bio_free+0xe0/0x130  bio_put+0xab/0xe0  bio_endio+0x3a6/0x5d0  blk_update_request+0x590/0x1370  scsi_end_request+0x7d/0x400  scsi_io_completion+0x1aa/0xe50  scsi_softirq_done+0x11b/0x240  blk_mq_complete_request+0xd4/0x120  scsi_mq_done+0xf0/0x200  virtscsi_vq_done+0xbc/0x150  vring_interrupt+0x179/0x390  __handle_irq_event_percpu+0xf7/0x490  handle_irq_event_percpu+0x7b/0x160  handle_irq_event+0xcc/0x170  handle_edge_irq+0x215/0xb20  common_interrupt+0x60/0x120  asm_common_interrupt+0x1e/0x40  Fix this by move BIO_THROTTLED set into the queue_lock.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-26 07:01:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71180",
                        "url": "https://ubuntu.com/security/CVE-2025-71180",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  counter: interrupt-cnt: Drop IRQF_NO_THREAD flag  An IRQ handler can either be IRQF_NO_THREAD or acquire spinlock_t, as CONFIG_PROVE_RAW_LOCK_NESTING warns: ============================= [ BUG: Invalid wait context ] 6.18.0-rc1+git... #1 ----------------------------- some-user-space-process/1251 is trying to lock: (&counter->events_list_lock){....}-{3:3}, at: counter_push_event [counter] other info that might help us debug this: context-{2:2} no locks held by some-user-space-process/.... stack backtrace: CPU: 0 UID: 0 PID: 1251 Comm: some-user-space-process 6.18.0-rc1+git... #1 PREEMPT Call trace:  show_stack (C)  dump_stack_lvl  dump_stack  __lock_acquire  lock_acquire  _raw_spin_lock_irqsave  counter_push_event [counter]  interrupt_cnt_isr [interrupt_cnt]  __handle_irq_event_percpu  handle_irq_event  handle_simple_irq  handle_irq_desc  generic_handle_domain_irq  gpio_irq_handler  handle_irq_desc  generic_handle_domain_irq  gic_handle_irq  call_on_irq_stack  do_interrupt_handler  el0_interrupt  __el0_irq_handler_common  el0t_64_irq_handler  el0t_64_irq  ... and Sebastian correctly points out. Remove IRQF_NO_THREAD as an alternative to switching to raw_spinlock_t, because the latter would limit all potential nested locks to raw_spinlock_t only.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22980",
                        "url": "https://ubuntu.com/security/CVE-2026-22980",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfsd: provide locking for v4_end_grace  Writing to v4_end_grace can race with server shutdown and result in memory being accessed after it was freed - reclaim_str_hashtbl in particularly.  We cannot hold nfsd_mutex across the nfsd4_end_grace() call as that is held while client_tracking_op->init() is called and that can wait for an upcall to nfsdcltrack which can write to v4_end_grace, resulting in a deadlock.  nfsd4_end_grace() is also called by the landromat work queue and this doesn't require locking as server shutdown will stop the work and wait for it before freeing anything that nfsd4_end_grace() might access.  However, we must be sure that writing to v4_end_grace doesn't restart the work item after shutdown has already waited for it.  For this we add a new flag protected with nn->client_lock.  It is set only while it is safe to make client tracking calls, and v4_end_grace only schedules work while the flag is set with the spinlock held.  So this patch adds a nfsd_net field \"client_tracking_active\" which is set as described.  Another field \"grace_end_forced\", is set when v4_end_grace is written.  After this is set, and providing client_tracking_active is set, the laundromat is scheduled. This \"grace_end_forced\" field bypasses other checks for whether the grace period has finished.  This resolves a race which can result in use-after-free.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23021",
                        "url": "https://ubuntu.com/security/CVE-2026-23021",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: pegasus: fix memory leak in update_eth_regs_async()  When asynchronously writing to the device registers and if usb_submit_urb() fail, the code fail to release allocated to this point resources.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22976",
                        "url": "https://ubuntu.com/security/CVE-2026-22976",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate in qfq_reset  `qfq_class->leaf_qdisc->q.qlen > 0` does not imply that the class itself is active.  Two qfq_class objects may point to the same leaf_qdisc. This happens when:  1. one QFQ qdisc is attached to the dev as the root qdisc, and  2. another QFQ qdisc is temporarily referenced (e.g., via qdisc_get() / qdisc_put()) and is pending to be destroyed, as in function tc_new_tfilter.  When packets are enqueued through the root QFQ qdisc, the shared leaf_qdisc->q.qlen increases. At the same time, the second QFQ qdisc triggers qdisc_put and qdisc_destroy: the qdisc enters qfq_reset() with its own q->q.qlen == 0, but its class's leaf qdisc->q.qlen > 0. Therefore, the qfq_reset would wrongly deactivate an inactive aggregate and trigger a null-deref in qfq_deactivate_agg:  [    0.903172] BUG: kernel NULL pointer dereference, address: 0000000000000000 [    0.903571] #PF: supervisor write access in kernel mode [    0.903860] #PF: error_code(0x0002) - not-present page [    0.904177] PGD 10299b067 P4D 10299b067 PUD 10299c067 PMD 0 [    0.904502] Oops: Oops: 0002 [#1] SMP NOPTI [    0.904737] CPU: 0 UID: 0 PID: 135 Comm: exploit Not tainted 6.19.0-rc3+ #2 NONE [    0.905157] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014 [    0.905754] RIP: 0010:qfq_deactivate_agg (include/linux/list.h:992 (discriminator 2) include/linux/list.h:1006 (discriminator 2) net/sched/sch_qfq.c:1367 (discriminator 2) net/sched/sch_qfq.c:1393 (discriminator 2)) [    0.906046] Code: 0f 84 4d 01 00 00 48 89 70 18 8b 4b 10 48 c7 c2 ff ff ff ff 48 8b 78 08 48 d3 e2 48 21 f2 48 2b 13 48 8b 30 48 d3 ea 8b 4b 18 0  Code starting with the faulting instruction ===========================================    0:\t0f 84 4d 01 00 00    \tje     0x153    6:\t48 89 70 18          \tmov    %rsi,0x18(%rax)    a:\t8b 4b 10             \tmov    0x10(%rbx),%ecx    d:\t48 c7 c2 ff ff ff ff \tmov    $0xffffffffffffffff,%rdx   14:\t48 8b 78 08          \tmov    0x8(%rax),%rdi   18:\t48 d3 e2             \tshl    %cl,%rdx   1b:\t48 21 f2             \tand    %rsi,%rdx   1e:\t48 2b 13             \tsub    (%rbx),%rdx   21:\t48 8b 30             \tmov    (%rax),%rsi   24:\t48 d3 ea             \tshr    %cl,%rdx   27:\t8b 4b 18             \tmov    0x18(%rbx),%ecx \t... [    0.907095] RSP: 0018:ffffc900004a39a0 EFLAGS: 00010246 [    0.907368] RAX: ffff8881043a0880 RBX: ffff888102953340 RCX: 0000000000000000 [    0.907723] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 [    0.908100] RBP: ffff888102952180 R08: 0000000000000000 R09: 0000000000000000 [    0.908451] R10: ffff8881043a0000 R11: 0000000000000000 R12: ffff888102952000 [    0.908804] R13: ffff888102952180 R14: ffff8881043a0ad8 R15: ffff8881043a0880 [    0.909179] FS:  000000002a1a0380(0000) GS:ffff888196d8d000(0000) knlGS:0000000000000000 [    0.909572] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [    0.909857] CR2: 0000000000000000 CR3: 0000000102993002 CR4: 0000000000772ef0 [    0.910247] PKRU: 55555554 [    0.910391] Call Trace: [    0.910527]  <TASK> [    0.910638]  qfq_reset_qdisc (net/sched/sch_qfq.c:357 net/sched/sch_qfq.c:1485) [    0.910826]  qdisc_reset (include/linux/skbuff.h:2195 include/linux/skbuff.h:2501 include/linux/skbuff.h:3424 include/linux/skbuff.h:3430 net/sched/sch_generic.c:1036) [    0.911040]  __qdisc_destroy (net/sched/sch_generic.c:1076) [    0.911236]  tc_new_tfilter (net/sched/cls_api.c:2447) [    0.911447]  rtnetlink_rcv_msg (net/core/rtnetlink.c:6958) [    0.911663]  ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6861) [    0.911894]  netlink_rcv_skb (net/netlink/af_netlink.c:2550) [    0.912100]  netlink_unicast (net/netlink/af_netlink.c:1319 net/netlink/af_netlink.c:1344) [    0.912296]  ? __alloc_skb (net/core/skbuff.c:706) [    0.912484]  netlink_sendmsg (net/netlink/af ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-21 07:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22977",
                        "url": "https://ubuntu.com/security/CVE-2026-22977",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sock: fix hardened usercopy panic in sock_recv_errqueue  skbuff_fclone_cache was created without defining a usercopy region, [1] unlike skbuff_head_cache which properly whitelists the cb[] field. [2] This causes a usercopy BUG() when CONFIG_HARDENED_USERCOPY is enabled and the kernel attempts to copy sk_buff.cb data to userspace via sock_recv_errqueue() -> put_cmsg().  The crash occurs when: 1. TCP allocates an skb using alloc_skb_fclone()    (from skbuff_fclone_cache) [1] 2. The skb is cloned via skb_clone() using the pre-allocated fclone [3] 3. The cloned skb is queued to sk_error_queue for timestamp reporting 4. Userspace reads the error queue via recvmsg(MSG_ERRQUEUE) 5. sock_recv_errqueue() calls put_cmsg() to copy serr->ee from skb->cb [4] 6. __check_heap_object() fails because skbuff_fclone_cache has no    usercopy whitelist [5]  When cloned skbs allocated from skbuff_fclone_cache are used in the socket error queue, accessing the sock_exterr_skb structure in skb->cb via put_cmsg() triggers a usercopy hardening violation:  [    5.379589] usercopy: Kernel memory exposure attempt detected from SLUB object 'skbuff_fclone_cache' (offset 296, size 16)! [    5.382796] kernel BUG at mm/usercopy.c:102! [    5.383923] Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI [    5.384903] CPU: 1 UID: 0 PID: 138 Comm: poc_put_cmsg Not tainted 6.12.57 #7 [    5.384903] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [    5.384903] RIP: 0010:usercopy_abort+0x6c/0x80 [    5.384903] Code: 1a 86 51 48 c7 c2 40 15 1a 86 41 52 48 c7 c7 c0 15 1a 86 48 0f 45 d6 48 c7 c6 80 15 1a 86 48 89 c1 49 0f 45 f3 e8 84 27 88 ff <0f> 0b 490 [    5.384903] RSP: 0018:ffffc900006f77a8 EFLAGS: 00010246 [    5.384903] RAX: 000000000000006f RBX: ffff88800f0ad2a8 RCX: 1ffffffff0f72e74 [    5.384903] RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffffffff87b973a0 [    5.384903] RBP: 0000000000000010 R08: 0000000000000000 R09: fffffbfff0f72e74 [    5.384903] R10: 0000000000000003 R11: 79706f6372657375 R12: 0000000000000001 [    5.384903] R13: ffff88800f0ad2b8 R14: ffffea00003c2b40 R15: ffffea00003c2b00 [    5.384903] FS:  0000000011bc4380(0000) GS:ffff8880bf100000(0000) knlGS:0000000000000000 [    5.384903] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [    5.384903] CR2: 000056aa3b8e5fe4 CR3: 000000000ea26004 CR4: 0000000000770ef0 [    5.384903] PKRU: 55555554 [    5.384903] Call Trace: [    5.384903]  <TASK> [    5.384903]  __check_heap_object+0x9a/0xd0 [    5.384903]  __check_object_size+0x46c/0x690 [    5.384903]  put_cmsg+0x129/0x5e0 [    5.384903]  sock_recv_errqueue+0x22f/0x380 [    5.384903]  tls_sw_recvmsg+0x7ed/0x1960 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5 [    5.384903]  ? schedule+0x6d/0x270 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5 [    5.384903]  ? mutex_unlock+0x81/0xd0 [    5.384903]  ? __pfx_mutex_unlock+0x10/0x10 [    5.384903]  ? __pfx_tls_sw_recvmsg+0x10/0x10 [    5.384903]  ? _raw_spin_lock_irqsave+0x8f/0xf0 [    5.384903]  ? _raw_read_unlock_irqrestore+0x20/0x40 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5  The crash offset 296 corresponds to skb2->cb within skbuff_fclones:   - sizeof(struct sk_buff) = 232 - offsetof(struct sk_buff, cb) = 40 -   offset of skb2.cb in fclones = 232 + 40 = 272 - crash offset 296 =   272 + 24 (inside sock_exterr_skb.ee)  This patch uses a local stack variable as a bounce buffer to avoid the hardened usercopy check failure.  [1] https://elixir.bootlin.com/linux/v6.12.62/source/net/ipv4/tcp.c#L885 [2] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5104 [3] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5566 [4] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5491 [5] https://elixir.bootlin.com/linux/v6.12.62/source/mm/slub.c#L5719",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-21 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22982",
                        "url": "https://ubuntu.com/security/CVE-2026-22982",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: mscc: ocelot: Fix crash when adding interface under a lag  Commit 15faa1f67ab4 (\"lan966x: Fix crash when adding interface under a lag\") fixed a similar issue in the lan966x driver caused by a NULL pointer dereference. The ocelot_set_aggr_pgids() function in the ocelot driver has similar logic and is susceptible to the same crash.  This issue specifically affects the ocelot_vsc7514.c frontend, which leaves unused ports as NULL pointers. The felix_vsc9959.c frontend is unaffected as it uses the DSA framework which registers all ports.  Fix this by checking if the port pointer is valid before accessing it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23019",
                        "url": "https://ubuntu.com/security/CVE-2026-23019",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: marvell: prestera: fix NULL dereference on devlink_alloc() failure  devlink_alloc() may return NULL on allocation failure, but prestera_devlink_alloc() unconditionally calls devlink_priv() on the returned pointer.  This leads to a NULL pointer dereference if devlink allocation fails. Add a check for a NULL devlink pointer and return NULL early to avoid the crash.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-22121",
                        "url": "https://ubuntu.com/security/CVE-2025-22121",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: fix out-of-bound read in ext4_xattr_inode_dec_ref_all()  There's issue as follows: BUG: KASAN: use-after-free in ext4_xattr_inode_dec_ref_all+0x6ff/0x790 Read of size 4 at addr ffff88807b003000 by task syz-executor.0/15172  CPU: 3 PID: 15172 Comm: syz-executor.0 Call Trace:  __dump_stack lib/dump_stack.c:82 [inline]  dump_stack+0xbe/0xfd lib/dump_stack.c:123  print_address_description.constprop.0+0x1e/0x280 mm/kasan/report.c:400  __kasan_report.cold+0x6c/0x84 mm/kasan/report.c:560  kasan_report+0x3a/0x50 mm/kasan/report.c:585  ext4_xattr_inode_dec_ref_all+0x6ff/0x790 fs/ext4/xattr.c:1137  ext4_xattr_delete_inode+0x4c7/0xda0 fs/ext4/xattr.c:2896  ext4_evict_inode+0xb3b/0x1670 fs/ext4/inode.c:323  evict+0x39f/0x880 fs/inode.c:622  iput_final fs/inode.c:1746 [inline]  iput fs/inode.c:1772 [inline]  iput+0x525/0x6c0 fs/inode.c:1758  ext4_orphan_cleanup fs/ext4/super.c:3298 [inline]  ext4_fill_super+0x8c57/0xba40 fs/ext4/super.c:5300  mount_bdev+0x355/0x410 fs/super.c:1446  legacy_get_tree+0xfe/0x220 fs/fs_context.c:611  vfs_get_tree+0x8d/0x2f0 fs/super.c:1576  do_new_mount fs/namespace.c:2983 [inline]  path_mount+0x119a/0x1ad0 fs/namespace.c:3316  do_mount+0xfc/0x110 fs/namespace.c:3329  __do_sys_mount fs/namespace.c:3540 [inline]  __se_sys_mount+0x219/0x2e0 fs/namespace.c:3514  do_syscall_64+0x33/0x40 arch/x86/entry/common.c:46  entry_SYSCALL_64_after_hwframe+0x67/0xd1  Memory state around the buggy address:  ffff88807b002f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ffff88807b002f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffff88807b003000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff                    ^  ffff88807b003080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ffff88807b003100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  Above issue happens as ext4_xattr_delete_inode() isn't check xattr is valid if xattr is in inode. To solve above issue call xattr_check_inode() check if xattr if valid in inode. In fact, we can directly verify in ext4_iget_extra_inode(), so that there is no divergent verification.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22992",
                        "url": "https://ubuntu.com/security/CVE-2026-22992",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: return the handler error from mon_handle_auth_done()  Currently any error from ceph_auth_handle_reply_done() is propagated via finish_auth() but isn't returned from mon_handle_auth_done().  This results in higher layers learning that (despite the monitor considering us to be successfully authenticated) something went wrong in the authentication phase and reacting accordingly, but msgr2 still trying to proceed with establishing the session in the background.  In the case of secure mode this can trigger a WARN in setup_crypto() and later lead to a NULL pointer dereference inside of prepare_auth_signature().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22991",
                        "url": "https://ubuntu.com/security/CVE-2026-22991",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make free_choose_arg_map() resilient to partial allocation  free_choose_arg_map() may dereference a NULL pointer if its caller fails after a partial allocation.  For example, in decode_choose_args(), if allocation of arg_map->args fails, execution jumps to the fail label and free_choose_arg_map() is called. Since arg_map->size is updated to a non-zero value before memory allocation, free_choose_arg_map() will iterate over arg_map->args and dereference a NULL pointer.  To prevent this potential NULL pointer dereference and make free_choose_arg_map() more resilient, add checks for pointers before iterating.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22990",
                        "url": "https://ubuntu.com/security/CVE-2026-22990",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: replace overzealous BUG_ON in osdmap_apply_incremental()  If the osdmap is (maliciously) corrupted such that the incremental osdmap epoch is different from what is expected, there is no need to BUG.  Instead, just declare the incremental osdmap to be invalid.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22984",
                        "url": "https://ubuntu.com/security/CVE-2026-22984",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: prevent potential out-of-bounds reads in handle_auth_done()  Perform an explicit bounds check on payload_len to avoid a possible out-of-bounds access in the callout.  [ idryomov: changelog ]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-22978",
                        "url": "https://ubuntu.com/security/CVE-2026-22978",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: avoid kernel-infoleak from struct iw_point  struct iw_point has a 32bit hole on 64bit arches.  struct iw_point {   void __user   *pointer;       /* Pointer to the data  (in user space) */   __u16         length;         /* number of fields or size in bytes */   __u16         flags;          /* Optional params */ };  Make sure to zero the structure to avoid disclosing 32bits of kernel data to user space.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2026-23020",
                        "url": "https://ubuntu.com/security/CVE-2026-23020",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: 3com: 3c59x: fix possible null dereference in vortex_probe1()  pdev can be null and free_ring: can be called in 1297 with a null pdev.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-31 12:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-49968",
                        "url": "https://ubuntu.com/security/CVE-2024-49968",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: filesystems without casefold feature cannot be mounted with siphash  When mounting the ext4 filesystem, if the default hash version is set to DX_HASH_SIPHASH but the casefold feature is not set, exit the mounting.",
                        "cve_priority": "low",
                        "cve_public_date": "2024-10-21 18:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-36927",
                        "url": "https://ubuntu.com/security/CVE-2024-36927",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: Fix uninit-value access in __ip_make_skb()  KMSAN reported uninit-value access in __ip_make_skb() [1].  __ip_make_skb() tests HDRINCL to know if the skb has icmphdr. However, HDRINCL can cause a race condition. If calling setsockopt(2) with IP_HDRINCL changes HDRINCL while __ip_make_skb() is running, the function will access icmphdr in the skb even if it is not included. This causes the issue reported by KMSAN.  Check FLOWI_FLAG_KNOWN_NH on fl4->flowi4_flags instead of testing HDRINCL on the socket.  Also, fl4->fl4_icmp_type and fl4->fl4_icmp_code are not initialized. These are union in struct flowi4 and are implicitly initialized by flowi4_init_output(), but we should not rely on specific union layout.  Initialize these explicitly in raw_sendmsg().  [1] BUG: KMSAN: uninit-value in __ip_make_skb+0x2b74/0x2d20 net/ipv4/ip_output.c:1481  __ip_make_skb+0x2b74/0x2d20 net/ipv4/ip_output.c:1481  ip_finish_skb include/net/ip.h:243 [inline]  ip_push_pending_frames+0x4c/0x5c0 net/ipv4/ip_output.c:1508  raw_sendmsg+0x2381/0x2690 net/ipv4/raw.c:654  inet_sendmsg+0x27b/0x2a0 net/ipv4/af_inet.c:851  sock_sendmsg_nosec net/socket.c:730 [inline]  __sock_sendmsg+0x274/0x3c0 net/socket.c:745  __sys_sendto+0x62c/0x7b0 net/socket.c:2191  __do_sys_sendto net/socket.c:2203 [inline]  __se_sys_sendto net/socket.c:2199 [inline]  __x64_sys_sendto+0x130/0x200 net/socket.c:2199  do_syscall_64+0xd8/0x1f0 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x6d/0x75  Uninit was created at:  slab_post_alloc_hook mm/slub.c:3804 [inline]  slab_alloc_node mm/slub.c:3845 [inline]  kmem_cache_alloc_node+0x5f6/0xc50 mm/slub.c:3888  kmalloc_reserve+0x13c/0x4a0 net/core/skbuff.c:577  __alloc_skb+0x35a/0x7c0 net/core/skbuff.c:668  alloc_skb include/linux/skbuff.h:1318 [inline]  __ip_append_data+0x49ab/0x68c0 net/ipv4/ip_output.c:1128  ip_append_data+0x1e7/0x260 net/ipv4/ip_output.c:1365  raw_sendmsg+0x22b1/0x2690 net/ipv4/raw.c:648  inet_sendmsg+0x27b/0x2a0 net/ipv4/af_inet.c:851  sock_sendmsg_nosec net/socket.c:730 [inline]  __sock_sendmsg+0x274/0x3c0 net/socket.c:745  __sys_sendto+0x62c/0x7b0 net/socket.c:2191  __do_sys_sendto net/socket.c:2203 [inline]  __se_sys_sendto net/socket.c:2199 [inline]  __x64_sys_sendto+0x130/0x200 net/socket.c:2199  do_syscall_64+0xd8/0x1f0 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x6d/0x75  CPU: 1 PID: 15709 Comm: syz-executor.7 Not tainted 6.8.0-11567-gb3603fcb79b1 #25 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-1.fc39 04/01/2014",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-05-30 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-36903",
                        "url": "https://ubuntu.com/security/CVE-2024-36903",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: Fix potential uninit-value access in __ip6_make_skb()  As it was done in commit fc1092f51567 (\"ipv4: Fix uninit-value access in __ip_make_skb()\") for IPv4, check FLOWI_FLAG_KNOWN_NH on fl6->flowi6_flags instead of testing HDRINCL on the socket to avoid a race condition which causes uninit-value access.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-05-30 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38556",
                        "url": "https://ubuntu.com/security/CVE-2025-38556",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  HID: core: Harden s32ton() against conversion to 0 bits  Testing by the syzbot fuzzer showed that the HID core gets a shift-out-of-bounds exception when it tries to convert a 32-bit quantity to a 0-bit quantity.  Ideally this should never occur, but there are buggy devices and some might have a report field with size set to zero; we shouldn't reject the report or the device just because of that.  Instead, harden the s32ton() routine so that it returns a reasonable result instead of crashing when it is called with the number of bits set to 0 -- the same as what snto32() does.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-08-19 17:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-46830",
                        "url": "https://ubuntu.com/security/CVE-2024-46830",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: x86: Acquire kvm->srcu when handling KVM_SET_VCPU_EVENTS  Grab kvm->srcu when processing KVM_SET_VCPU_EVENTS, as KVM will forcibly leave nested VMX/SVM if SMM mode is being toggled, and leaving nested VMX reads guest memory.  Note, kvm_vcpu_ioctl_x86_set_vcpu_events() can also be called from KVM_RUN via sync_regs(), which already holds SRCU.  I.e. trying to precisely use kvm_vcpu_srcu_read_lock() around the problematic SMM code would cause problems.  Acquiring SRCU isn't all that expensive, so for simplicity, grab it unconditionally for KVM_SET_VCPU_EVENTS.   =============================  WARNING: suspicious RCU usage  6.10.0-rc7-332d2c1d713e-next-vm #552 Not tainted  -----------------------------  include/linux/kvm_host.h:1027 suspicious rcu_dereference_check() usage!   other info that might help us debug this:   rcu_scheduler_active = 2, debug_locks = 1  1 lock held by repro/1071:   #0: ffff88811e424430 (&vcpu->mutex){+.+.}-{3:3}, at: kvm_vcpu_ioctl+0x7d/0x970 [kvm]   stack backtrace:  CPU: 15 PID: 1071 Comm: repro Not tainted 6.10.0-rc7-332d2c1d713e-next-vm #552  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015  Call Trace:   <TASK>   dump_stack_lvl+0x7f/0x90   lockdep_rcu_suspicious+0x13f/0x1a0   kvm_vcpu_gfn_to_memslot+0x168/0x190 [kvm]   kvm_vcpu_read_guest+0x3e/0x90 [kvm]   nested_vmx_load_msr+0x6b/0x1d0 [kvm_intel]   load_vmcs12_host_state+0x432/0xb40 [kvm_intel]   vmx_leave_nested+0x30/0x40 [kvm_intel]   kvm_vcpu_ioctl_x86_set_vcpu_events+0x15d/0x2b0 [kvm]   kvm_arch_vcpu_ioctl+0x1107/0x1750 [kvm]   ? mark_held_locks+0x49/0x70   ? kvm_vcpu_ioctl+0x7d/0x970 [kvm]   ? kvm_vcpu_ioctl+0x497/0x970 [kvm]   kvm_vcpu_ioctl+0x497/0x970 [kvm]   ? lock_acquire+0xba/0x2d0   ? find_held_lock+0x2b/0x80   ? do_user_addr_fault+0x40c/0x6f0   ? lock_release+0xb7/0x270   __x64_sys_ioctl+0x82/0xb0   do_syscall_64+0x6c/0x170   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7ff11eb1b539   </TASK>",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-09-27 13:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38129",
                        "url": "https://ubuntu.com/security/CVE-2025-38129",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  page_pool: Fix use-after-free in page_pool_recycle_in_ring  syzbot reported a uaf in page_pool_recycle_in_ring:  BUG: KASAN: slab-use-after-free in lock_release+0x151/0xa30 kernel/locking/lockdep.c:5862 Read of size 8 at addr ffff8880286045a0 by task syz.0.284/6943  CPU: 0 UID: 0 PID: 6943 Comm: syz.0.284 Not tainted 6.13.0-rc3-syzkaller-gdfa94ce54f41 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0x169/0x550 mm/kasan/report.c:489  kasan_report+0x143/0x180 mm/kasan/report.c:602  lock_release+0x151/0xa30 kernel/locking/lockdep.c:5862  __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:165 [inline]  _raw_spin_unlock_bh+0x1b/0x40 kernel/locking/spinlock.c:210  spin_unlock_bh include/linux/spinlock.h:396 [inline]  ptr_ring_produce_bh include/linux/ptr_ring.h:164 [inline]  page_pool_recycle_in_ring net/core/page_pool.c:707 [inline]  page_pool_put_unrefed_netmem+0x748/0xb00 net/core/page_pool.c:826  page_pool_put_netmem include/net/page_pool/helpers.h:323 [inline]  page_pool_put_full_netmem include/net/page_pool/helpers.h:353 [inline]  napi_pp_put_page+0x149/0x2b0 net/core/skbuff.c:1036  skb_pp_recycle net/core/skbuff.c:1047 [inline]  skb_free_head net/core/skbuff.c:1094 [inline]  skb_release_data+0x6c4/0x8a0 net/core/skbuff.c:1125  skb_release_all net/core/skbuff.c:1190 [inline]  __kfree_skb net/core/skbuff.c:1204 [inline]  sk_skb_reason_drop+0x1c9/0x380 net/core/skbuff.c:1242  kfree_skb_reason include/linux/skbuff.h:1263 [inline]  __skb_queue_purge_reason include/linux/skbuff.h:3343 [inline]  root cause is:  page_pool_recycle_in_ring   ptr_ring_produce     spin_lock(&r->producer_lock);     WRITE_ONCE(r->queue[r->producer++], ptr)       //recycle last page to pool \t\t\t\tpage_pool_release \t\t\t\t  page_pool_scrub \t\t\t\t    page_pool_empty_ring \t\t\t\t      ptr_ring_consume \t\t\t\t      page_pool_return_page  //release all page \t\t\t\t  __page_pool_destroy \t\t\t\t     free_percpu(pool->recycle_stats); \t\t\t\t     free(pool) //free       spin_unlock(&r->producer_lock); //pool->ring uaf read   recycle_stat_inc(pool, ring);  page_pool can be free while page pool recycle the last page in ring. Add producer-lock barrier to page_pool_release to prevent the page pool from being free before all pages have been recycled.  recycle_stat_inc() is empty when CONFIG_PAGE_POOL_STATS is not enabled, which will trigger Wempty-body build warning. Add definition for pool stat macro to fix warning.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-07-03 09:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2022-49635",
                        "url": "https://ubuntu.com/security/CVE-2022-49635",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915/selftests: fix subtraction overflow bug  On some machines hole_end can be small enough to cause subtraction overflow. On the other side (addr + 2 * min_alignment) can overflow in case of mock tests. This patch should handle both cases.  (cherry picked from commit ab3edc679c552a466e4bf0b11af3666008bd65a2)",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-26 07:01:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-22111",
                        "url": "https://ubuntu.com/security/CVE-2025-22111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: Remove RTNL dance for SIOCBRADDIF and SIOCBRDELIF.  SIOCBRDELIF is passed to dev_ioctl() first and later forwarded to br_ioctl_call(), which causes unnecessary RTNL dance and the splat below [0] under RTNL pressure.  Let's say Thread A is trying to detach a device from a bridge and Thread B is trying to remove the bridge.  In dev_ioctl(), Thread A bumps the bridge device's refcnt by netdev_hold() and releases RTNL because the following br_ioctl_call() also re-acquires RTNL.  In the race window, Thread B could acquire RTNL and try to remove the bridge device.  Then, rtnl_unlock() by Thread B will release RTNL and wait for netdev_put() by Thread A.  Thread A, however, must hold RTNL after the unlock in dev_ifsioc(), which may take long under RTNL pressure, resulting in the splat by Thread B.    Thread A (SIOCBRDELIF)           Thread B (SIOCBRDELBR)   ----------------------           ----------------------   sock_ioctl                       sock_ioctl   `- sock_do_ioctl                 `- br_ioctl_call      `- dev_ioctl                     `- br_ioctl_stub         |- rtnl_lock                     |         |- dev_ifsioc                    '         '  |- dev = __dev_get_by_name(...)            |- netdev_hold(dev, ...)      .        /   |- rtnl_unlock  ------.       |        |   |- br_ioctl_call       `--->  |- rtnl_lock   Race |   |  `- br_ioctl_stub           |- br_del_bridge   Window   |     |                       |  |- dev = __dev_get_by_name(...)        |   |     |  May take long        |  `- br_dev_delete(dev, ...)        |   |     |  under RTNL pressure  |     `- unregister_netdevice_queue(dev, ...)        |   |     |               |       `- rtnl_unlock        \\   |     |- rtnl_lock  <-'          `- netdev_run_todo            |     |- ...                        `- netdev_run_todo            |     `- rtnl_unlock                   |- __rtnl_unlock            |                                      |- netdev_wait_allrefs_any            |- netdev_put(dev, ...)  <----------------'                                                 Wait refcnt decrement                                                 and log splat below  To avoid blocking SIOCBRDELBR unnecessarily, let's not call dev_ioctl() for SIOCBRADDIF and SIOCBRDELIF.  In the dev_ioctl() path, we do the following:    1. Copy struct ifreq by get_user_ifreq in sock_do_ioctl()   2. Check CAP_NET_ADMIN in dev_ioctl()   3. Call dev_load() in dev_ioctl()   4. Fetch the master dev from ifr.ifr_name in dev_ifsioc()  3. can be done by request_module() in br_ioctl_call(), so we move 1., 2., and 4. to br_ioctl_stub().  Note that 2. is also checked later in add_del_if(), but it's better performed before RTNL.  SIOCBRADDIF and SIOCBRDELIF have been processed in dev_ioctl() since the pre-git era, and there seems to be no specific reason to process them there.  [0]: unregister_netdevice: waiting for wpan3 to become free. Usage count = 2 ref_tracker: wpan3@ffff8880662d8608 has 1/1 users at      __netdev_tracker_alloc include/linux/netdevice.h:4282 [inline]      netdev_hold include/linux/netdevice.h:4311 [inline]      dev_ifsioc+0xc6a/0x1160 net/core/dev_ioctl.c:624      dev_ioctl+0x255/0x10c0 net/core/dev_ioctl.c:826      sock_do_ioctl+0x1ca/0x260 net/socket.c:1213      sock_ioctl+0x23a/0x6c0 net/socket.c:1318      vfs_ioctl fs/ioctl.c:51 [inline]      __do_sys_ioctl fs/ioctl.c:906 [inline]      __se_sys_ioctl fs/ioctl.c:892 [inline]      __x64_sys_ioctl+0x1a4/0x210 fs/ioctl.c:892      do_syscall_x64 arch/x86/entry/common.c:52 [inline]      do_syscall_64+0xcb/0x250 arch/x86/entry/common.c:83      entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71127",
                        "url": "https://ubuntu.com/security/CVE-2025-71127",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: mac80211: Discard Beacon frames to non-broadcast address  Beacon frames are required to be sent to the broadcast address, see IEEE Std 802.11-2020, 11.1.3.1 (\"The Address 1 field of the Beacon .. frame shall be set to the broadcast address\"). A unicast Beacon frame might be used as a targeted attack to get one of the associated STAs to do something (e.g., using CSA to move it to another channel). As such, it is better have strict filtering for this on the received side and discard all Beacon frames that are sent to an unexpected address.  This is even more important for cases where beacon protection is used. The current implementation in mac80211 is correctly discarding unicast Beacon frames if the Protected Frame bit in the Frame Control field is set to 0. However, if that bit is set to 1, the logic used for checking for configured BIGTK(s) does not actually work. If the driver does not have logic for dropping unicast Beacon frames with Protected Frame bit 1, these frames would be accepted in mac80211 processing as valid Beacon frames even though they are not protected. This would allow beacon protection to be bypassed. While the logic for checking beacon protection could be extended to cover this corner case, a more generic check for discard all Beacon frames based on A1=unicast address covers this without needing additional changes.  Address all these issues by dropping received Beacon frames if they are sent to a non-broadcast address.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71081",
                        "url": "https://ubuntu.com/security/CVE-2025-71081",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: stm32: sai: fix OF node leak on probe  The reference taken to the sync provider OF node when probing the platform device is currently only dropped if the set_sync() callback fails during DAI probe.  Make sure to drop the reference on platform probe failures (e.g. probe deferral) and on driver unbind.  This also avoids a potential use-after-free in case the DAI is ever reprobed without first rebinding the platform driver.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71078",
                        "url": "https://ubuntu.com/security/CVE-2025-71078",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  powerpc/64s/slb: Fix SLB multihit issue during SLB preload  On systems using the hash MMU, there is a software SLB preload cache that mirrors the entries loaded into the hardware SLB buffer. This preload cache is subject to periodic eviction — typically after every 256 context switches — to remove old entry.  To optimize performance, the kernel skips switch_mmu_context() in switch_mm_irqs_off() when the prev and next mm_struct are the same. However, on hash MMU systems, this can lead to inconsistencies between the hardware SLB and the software preload cache.  If an SLB entry for a process is evicted from the software cache on one CPU, and the same process later runs on another CPU without executing switch_mmu_context(), the hardware SLB may retain stale entries. If the kernel then attempts to reload that entry, it can trigger an SLB multi-hit error.  The following timeline shows how stale SLB entries are created and can cause a multi-hit error when a process moves between CPUs without a MMU context switch.  CPU 0                                   CPU 1 -----                                    ----- Process P exec                                    swapper/1  load_elf_binary   begin_new_exc     activate_mm      switch_mm_irqs_off       switch_mmu_context        switch_slb        /*         * This invalidates all         * the entries in the HW         * and setup the new HW         * SLB entries as per the         * preload cache.         */ context_switch sched_migrate_task migrates process P to cpu-1  Process swapper/0                       context switch (to process P) (uses mm_struct of Process P)           switch_mm_irqs_off()                                          switch_slb                                            load_slb++                                             /*                                             * load_slb becomes 0 here                                             * and we evict an entry from                                             * the preload cache with                                             * preload_age(). We still                                             * keep HW SLB and preload                                             * cache in sync, that is                                             * because all HW SLB entries                                             * anyways gets evicted in                                             * switch_slb during SLBIA.                                             * We then only add those                                             * entries back in HW SLB,                                             * which are currently                                             * present in preload_cache                                             * (after eviction).                                             */                                         load_elf_binary continues...                                          setup_new_exec()                                           slb_setup_new_exec()                                          sched_switch event                                         sched_migrate_task migrates                                         process P to cpu-0  context_switch from swapper/0 to Process P  switch_mm_irqs_off()   /*    * Since both prev and next mm struct are same we don't call    * switch_mmu_context(). This will cause the HW SLB and SW preload    * cache to go out of sync in preload_new_slb_context. Because there    * was an SLB entry which was evicted from both HW and preload cache    * on cpu-1. Now later in preload_new_slb_context(), when we will try    * to add the same preload entry again, we will add this to the SW    * preload cache and then will add it to the HW SLB. Since on cpu-0    * this entry was never invalidated, hence adding this entry to the HW    * SLB will cause a SLB multi-hit error.    */ load_elf_binary cont ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68803",
                        "url": "https://ubuntu.com/security/CVE-2025-68803",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: NFSv4 file creation neglects setting ACL  An NFSv4 client that sets an ACL with a named principal during file creation retrieves the ACL afterwards, and finds that it is only a default ACL (based on the mode bits) and not the ACL that was requested during file creation. This violates RFC 8881 section 6.4.1.3: \"the ACL attribute is set as given\".  The issue occurs in nfsd_create_setattr(), which calls nfsd_attrs_valid() to determine whether to call nfsd_setattr(). However, nfsd_attrs_valid() checks only for iattr changes and security labels, but not POSIX ACLs. When only an ACL is present, the function returns false, nfsd_setattr() is skipped, and the POSIX ACL is never applied to the inode.  Subsequently, when the client retrieves the ACL, the server finds no POSIX ACL on the inode and returns one generated from the file's mode bits rather than returning the originally-specified ACL.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71120",
                        "url": "https://ubuntu.com/security/CVE-2025-71120",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in gss_read_proxy_verf  A zero length gss_token results in pages == 0 and in_token->pages[0] is NULL. The code unconditionally evaluates page_address(in_token->pages[0]) for the initial memcpy, which can dereference NULL even when the copy length is 0. Guard the first memcpy so it only runs when length > 0.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71113",
                        "url": "https://ubuntu.com/security/CVE-2025-71113",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - zero initialize memory allocated via sock_kmalloc  Several crypto user API contexts and requests allocated with sock_kmalloc() were left uninitialized, relying on callers to set fields explicitly. This resulted in the use of uninitialized data in certain error paths or when new fields are added in the future.  The ACVP patches also contain two user-space interface files: algif_kpp.c and algif_akcipher.c. These too rely on proper initialization of their context structures.  A particular issue has been observed with the newly added 'inflight' variable introduced in af_alg_ctx by commit:    67b164a871af (\"crypto: af_alg - Disallow multiple in-flight AIO requests\")  Because the context is not memset to zero after allocation, the inflight variable has contained garbage values. As a result, af_alg_alloc_areq() has incorrectly returned -EBUSY randomly when the garbage value was interpreted as true:    https://github.com/gregkh/linux/blame/master/crypto/af_alg.c#L1209  The check directly tests ctx->inflight without explicitly comparing against true/false. Since inflight is only ever set to true or false later, an uninitialized value has triggered -EBUSY failures. Zero-initializing memory allocated with sock_kmalloc() ensures inflight and other fields start in a known state, removing random issues caused by uninitialized data.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71068",
                        "url": "https://ubuntu.com/security/CVE-2025-71068",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  svcrdma: bound check rq_pages index in inline path  svc_rdma_copy_inline_range indexed rqstp->rq_pages[rc_curpage] without verifying rc_curpage stays within the allocated page array. Add guards before the first use and after advancing to a new page.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68821",
                        "url": "https://ubuntu.com/security/CVE-2025-68821",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fuse: fix readahead reclaim deadlock  Commit e26ee4efbc79 (\"fuse: allocate ff->release_args only if release is needed\") skips allocating ff->release_args if the server does not implement open. However in doing so, fuse_prepare_release() now skips grabbing the reference on the inode, which makes it possible for an inode to be evicted from the dcache while there are inflight readahead requests. This causes a deadlock if the server triggers reclaim while servicing the readahead request and reclaim attempts to evict the inode of the file being read ahead. Since the folio is locked during readahead, when reclaim evicts the fuse inode and fuse_evict_inode() attempts to remove all folios associated with the inode from the page cache (truncate_inode_pages_range()), reclaim will block forever waiting for the lock since readahead cannot relinquish the lock because it is itself blocked in reclaim:  >>> stack_trace(1504735)  folio_wait_bit_common (mm/filemap.c:1308:4)  folio_lock (./include/linux/pagemap.h:1052:3)  truncate_inode_pages_range (mm/truncate.c:336:10)  fuse_evict_inode (fs/fuse/inode.c:161:2)  evict (fs/inode.c:704:3)  dentry_unlink_inode (fs/dcache.c:412:3)  __dentry_kill (fs/dcache.c:615:3)  shrink_kill (fs/dcache.c:1060:12)  shrink_dentry_list (fs/dcache.c:1087:3)  prune_dcache_sb (fs/dcache.c:1168:2)  super_cache_scan (fs/super.c:221:10)  do_shrink_slab (mm/shrinker.c:435:9)  shrink_slab (mm/shrinker.c:626:10)  shrink_node (mm/vmscan.c:5951:2)  shrink_zones (mm/vmscan.c:6195:3)  do_try_to_free_pages (mm/vmscan.c:6257:3)  do_swap_page (mm/memory.c:4136:11)  handle_pte_fault (mm/memory.c:5562:10)  handle_mm_fault (mm/memory.c:5870:9)  do_user_addr_fault (arch/x86/mm/fault.c:1338:10)  handle_page_fault (arch/x86/mm/fault.c:1481:3)  exc_page_fault (arch/x86/mm/fault.c:1539:2)  asm_exc_page_fault+0x22/0x27  Fix this deadlock by allocating ff->release_args and grabbing the reference on the inode when preparing the file for release even if the server does not implement open. The inode reference will be dropped when the last reference on the fuse file is dropped (see fuse_file_put() -> fuse_release_end()).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68796",
                        "url": "https://ubuntu.com/security/CVE-2025-68796",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid updating zero-sized extent in extent cache  As syzbot reported:  F2FS-fs (loop0): __update_extent_tree_range: extent len is zero, type: 0, extent [0, 0, 0], age [0, 0] ------------[ cut here ]------------ kernel BUG at fs/f2fs/extent_cache.c:678! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 0 UID: 0 PID: 5336 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:__update_extent_tree_range+0x13bc/0x1500 fs/f2fs/extent_cache.c:678 Call Trace:  <TASK>  f2fs_update_read_extent_cache_range+0x192/0x3e0 fs/f2fs/extent_cache.c:1085  f2fs_do_zero_range fs/f2fs/file.c:1657 [inline]  f2fs_zero_range+0x10c1/0x1580 fs/f2fs/file.c:1737  f2fs_fallocate+0x583/0x990 fs/f2fs/file.c:2030  vfs_fallocate+0x669/0x7e0 fs/open.c:342  ioctl_preallocate fs/ioctl.c:289 [inline]  file_ioctl+0x611/0x780 fs/ioctl.c:-1  do_vfs_ioctl+0xb33/0x1430 fs/ioctl.c:576  __do_sys_ioctl fs/ioctl.c:595 [inline]  __se_sys_ioctl+0x82/0x170 fs/ioctl.c:583  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f07bc58eec9  In error path of f2fs_zero_range(), it may add a zero-sized extent into extent cache, it should be avoided.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71105",
                        "url": "https://ubuntu.com/security/CVE-2025-71105",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: use global inline_xattr_slab instead of per-sb slab cache  As Hong Yun reported in mailing list:  loop7: detected capacity change from 0 to 131072 ------------[ cut here ]------------ kmem_cache of name 'f2fs_xattr_entry-7:7' already exists WARNING: CPU: 0 PID: 24426 at mm/slab_common.c:110 kmem_cache_sanity_check mm/slab_common.c:109 [inline] WARNING: CPU: 0 PID: 24426 at mm/slab_common.c:110 __kmem_cache_create_args+0xa6/0x320 mm/slab_common.c:307 CPU: 0 UID: 0 PID: 24426 Comm: syz.7.1370 Not tainted 6.17.0-rc4 #1 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 RIP: 0010:kmem_cache_sanity_check mm/slab_common.c:109 [inline] RIP: 0010:__kmem_cache_create_args+0xa6/0x320 mm/slab_common.c:307 Call Trace:  __kmem_cache_create include/linux/slab.h:353 [inline]  f2fs_kmem_cache_create fs/f2fs/f2fs.h:2943 [inline]  f2fs_init_xattr_caches+0xa5/0xe0 fs/f2fs/xattr.c:843  f2fs_fill_super+0x1645/0x2620 fs/f2fs/super.c:4918  get_tree_bdev_flags+0x1fb/0x260 fs/super.c:1692  vfs_get_tree+0x43/0x140 fs/super.c:1815  do_new_mount+0x201/0x550 fs/namespace.c:3808  do_mount fs/namespace.c:4136 [inline]  __do_sys_mount fs/namespace.c:4347 [inline]  __se_sys_mount+0x298/0x2f0 fs/namespace.c:4324  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0x8e/0x3a0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x76/0x7e  The bug can be reproduced w/ below scripts: - mount /dev/vdb /mnt1 - mount /dev/vdc /mnt2 - umount /mnt1 - mounnt /dev/vdb /mnt1  The reason is if we created two slab caches, named f2fs_xattr_entry-7:3 and f2fs_xattr_entry-7:7, and they have the same slab size. Actually, slab system will only create one slab cache core structure which has slab name of \"f2fs_xattr_entry-7:3\", and two slab caches share the same structure and cache address.  So, if we destroy f2fs_xattr_entry-7:3 cache w/ cache address, it will decrease reference count of slab cache, rather than release slab cache entirely, since there is one more user has referenced the cache.  Then, if we try to create slab cache w/ name \"f2fs_xattr_entry-7:3\" again, slab system will find that there is existed cache which has the same name and trigger the warning.  Let's changes to use global inline_xattr_slab instead of per-sb slab cache for fixing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68344",
                        "url": "https://ubuntu.com/security/CVE-2025-68344",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: wavefront: Fix integer overflow in sample size validation  The wavefront_send_sample() function has an integer overflow issue when validating sample size. The header->size field is u32 but gets cast to int for comparison with dev->freemem  Fix by using unsigned comparison to avoid integer overflow.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71077",
                        "url": "https://ubuntu.com/security/CVE-2025-71077",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tpm: Cap the number of PCR banks  tpm2_get_pcr_allocation() does not cap any upper limit for the number of banks. Cap the limit to eight banks so that out of bounds values coming from external I/O cause on only limited harm.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68282",
                        "url": "https://ubuntu.com/security/CVE-2025-68282",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: udc: fix use-after-free in usb_gadget_state_work  A race condition during gadget teardown can lead to a use-after-free in usb_gadget_state_work(), as reported by KASAN:    BUG: KASAN: invalid-access in sysfs_notify+0x2c/0xd0   Workqueue: events usb_gadget_state_work  The fundamental race occurs because a concurrent event (e.g., an interrupt) can call usb_gadget_set_state() and schedule gadget->work at any time during the cleanup process in usb_del_gadget().  Commit 399a45e5237c (\"usb: gadget: core: flush gadget workqueue after device removal\") attempted to fix this by moving flush_work() to after device_del(). However, this does not fully solve the race, as a new work item can still be scheduled *after* flush_work() completes but before the gadget's memory is freed, leading to the same use-after-free.  This patch fixes the race condition robustly by introducing a 'teardown' flag and a 'state_lock' spinlock to the usb_gadget struct. The flag is set during cleanup in usb_del_gadget() *before* calling flush_work() to prevent any new work from being scheduled once cleanup has commenced. The scheduling site, usb_gadget_set_state(), now checks this flag under the lock before queueing the work, thus safely closing the race window.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-22022",
                        "url": "https://ubuntu.com/security/CVE-2025-22022",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: xhci: Apply the link chain quirk on NEC isoc endpoints  Two clearly different specimens of NEC uPD720200 (one with start/stop bug, one without) were seen to cause IOMMU faults after some Missed Service Errors. Faulting address is immediately after a transfer ring segment and patched dynamic debug messages revealed that the MSE was received when waiting for a TD near the end of that segment:  [ 1.041954] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ffa08fe0 [ 1.042120] xhci_hcd: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0005 address=0xffa09000 flags=0x0000] [ 1.042146] xhci_hcd: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0005 address=0xffa09040 flags=0x0000]  It gets even funnier if the next page is a ring segment accessible to the HC. Below, it reports MSE in segment at ff1e8000, plows through a zero-filled page at ff1e9000 and starts reporting events for TRBs in page at ff1ea000 every microframe, instead of jumping to seg ff1e6000.  [ 7.041671] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ff1e8fe0 [ 7.041999] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ff1e8fe0 [ 7.042011] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042028] xhci_hcd: All TDs skipped for slot 1 ep 2. Clear skip flag. [ 7.042134] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042138] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 31 [ 7.042144] xhci_hcd: Looking for event-dma 00000000ff1ea040 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.042259] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042262] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 31 [ 7.042266] xhci_hcd: Looking for event-dma 00000000ff1ea050 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820  At some point completion events change from Isoch Buffer Overrun to Short Packet and the HC finally finds cycle bit mismatch in ff1ec000.  [ 7.098130] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 [ 7.098132] xhci_hcd: Looking for event-dma 00000000ff1ecc50 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.098254] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 [ 7.098256] xhci_hcd: Looking for event-dma 00000000ff1ecc60 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.098379] xhci_hcd: Overrun event on slot 1 ep 2  It's possible that data from the isochronous device were written to random buffers of pending TDs on other endpoints (either IN or OUT), other devices or even other HCs in the same IOMMU domain.  Lastly, an error from a different USB device on another HC. Was it caused by the above? I don't know, but it may have been. The disk was working without any other issues and generated PCIe traffic to starve the NEC of upstream BW and trigger those MSEs. The two HCs shared one x1 slot by means of a commercial \"PCIe splitter\" board.  [ 7.162604] usb 10-2: reset SuperSpeed USB device number 3 using xhci_hcd [ 7.178990] sd 9:0:0:0: [sdb] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x07 driverbyte=DRIVER_OK cmd_age=0s [ 7.179001] sd 9:0:0:0: [sdb] tag#0 CDB: opcode=0x28 28 00 04 02 ae 00 00 02 00 00 [ 7.179004] I/O error, dev sdb, sector 67284480 op 0x0:(READ) flags 0x80700 phys_seg 5 prio class 0  Fortunately, it appears that this ridiculous bug is avoided by setting the chain bit of Link TRBs on isochronous rings. Other ancient HCs are known which also expect the bit to be set and they ignore Link TRBs if it's not. Reportedly, 0.95 spec guaranteed that the bit is set.  The bandwidth-starved NEC HC running a 32KB/uframe UVC endpoint reports tens of MSEs per second and runs into the bug within seconds. Chaining Link TRBs allows the same workload to run for many minutes, many times.  No ne ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-04-16 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40110",
                        "url": "https://ubuntu.com/security/CVE-2025-40110",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vmwgfx: Fix a null-ptr access in the cursor snooper  Check that the resource which is converted to a surface exists before trying to use the cursor snooper on it.  vmw_cmd_res_check allows explicit invalid (SVGA3D_INVALID_ID) identifiers because some svga commands accept SVGA3D_INVALID_ID to mean \"no surface\", unfortunately functions that accept the actual surfaces as objects might (and in case of the cursor snooper, do not) be able to handle null objects. Make sure that we validate not only the identifier (via the vmw_cmd_res_check) but also check that the actual resource exists before trying to do something with it.  Fixes unchecked null-ptr reference in the snooping code.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-12 02:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-38022",
                        "url": "https://ubuntu.com/security/CVE-2025-38022",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/core: Fix \"KASAN: slab-use-after-free Read in ib_register_device\" problem  Call Trace:   __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:408 [inline]  print_report+0xc3/0x670 mm/kasan/report.c:521  kasan_report+0xe0/0x110 mm/kasan/report.c:634  strlen+0x93/0xa0 lib/string.c:420  __fortify_strlen include/linux/fortify-string.h:268 [inline]  get_kobj_path_length lib/kobject.c:118 [inline]  kobject_get_path+0x3f/0x2a0 lib/kobject.c:158  kobject_uevent_env+0x289/0x1870 lib/kobject_uevent.c:545  ib_register_device drivers/infiniband/core/device.c:1472 [inline]  ib_register_device+0x8cf/0xe00 drivers/infiniband/core/device.c:1393  rxe_register_device+0x275/0x320 drivers/infiniband/sw/rxe/rxe_verbs.c:1552  rxe_net_add+0x8e/0xe0 drivers/infiniband/sw/rxe/rxe_net.c:550  rxe_newlink+0x70/0x190 drivers/infiniband/sw/rxe/rxe.c:225  nldev_newlink+0x3a3/0x680 drivers/infiniband/core/nldev.c:1796  rdma_nl_rcv_msg+0x387/0x6e0 drivers/infiniband/core/netlink.c:195  rdma_nl_rcv_skb.constprop.0.isra.0+0x2e5/0x450  netlink_unicast_kernel net/netlink/af_netlink.c:1313 [inline]  netlink_unicast+0x53a/0x7f0 net/netlink/af_netlink.c:1339  netlink_sendmsg+0x8d1/0xdd0 net/netlink/af_netlink.c:1883  sock_sendmsg_nosec net/socket.c:712 [inline]  __sock_sendmsg net/socket.c:727 [inline]  ____sys_sendmsg+0xa95/0xc70 net/socket.c:2566  ___sys_sendmsg+0x134/0x1d0 net/socket.c:2620  __sys_sendmsg+0x16d/0x220 net/socket.c:2652  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xcd/0x260 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  This problem is similar to the problem that the commit 1d6a9e7449e2 (\"RDMA/core: Fix use-after-free when rename device name\") fixes.  The root cause is: the function ib_device_rename() renames the name with lock. But in the function kobject_uevent(), this name is accessed without lock protection at the same time.  The solution is to add the lock protection when this name is accessed in the function kobject_uevent().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-06-18 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71083",
                        "url": "https://ubuntu.com/security/CVE-2025-71083",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/ttm: Avoid NULL pointer deref for evicted BOs  It is possible for a BO to exist that is not currently associated with a resource, e.g. because it has been evicted.  When devcoredump tries to read the contents of all BOs for dumping, we need to expect this as well -- in this case, ENODATA is recorded instead of the buffer contents.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71079",
                        "url": "https://ubuntu.com/security/CVE-2025-71079",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: nfc: fix deadlock between nfc_unregister_device and rfkill_fop_write  A deadlock can occur between nfc_unregister_device() and rfkill_fop_write() due to lock ordering inversion between device_lock and rfkill_global_mutex.  The problematic lock order is:  Thread A (rfkill_fop_write):   rfkill_fop_write()     mutex_lock(&rfkill_global_mutex)       rfkill_set_block()         nfc_rfkill_set_block()           nfc_dev_down()             device_lock(&dev->dev)    <- waits for device_lock  Thread B (nfc_unregister_device):   nfc_unregister_device()     device_lock(&dev->dev)       rfkill_unregister()         mutex_lock(&rfkill_global_mutex)  <- waits for rfkill_global_mutex  This creates a classic ABBA deadlock scenario.  Fix this by moving rfkill_unregister() and rfkill_destroy() outside the device_lock critical section. Store the rfkill pointer in a local variable before releasing the lock, then call rfkill_unregister() after releasing device_lock.  This change is safe because rfkill_fop_write() holds rfkill_global_mutex while calling the rfkill callbacks, and rfkill_unregister() also acquires rfkill_global_mutex before cleanup. Therefore, rfkill_unregister() will wait for any ongoing callback to complete before proceeding, and device_del() is only called after rfkill_unregister() returns, preventing any use-after-free.  The similar lock ordering in nfc_register_device() (device_lock -> rfkill_global_mutex via rfkill_register) is safe because during registration the device is not yet in rfkill_list, so no concurrent rfkill operations can occur on this device.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71093",
                        "url": "https://ubuntu.com/security/CVE-2025-71093",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  e1000: fix OOB in e1000_tbi_should_accept()  In e1000_tbi_should_accept() we read the last byte of the frame via 'data[length - 1]' to evaluate the TBI workaround. If the descriptor- reported length is zero or larger than the actual RX buffer size, this read goes out of bounds and can hit unrelated slab objects. The issue is observed from the NAPI receive path (e1000_clean_rx_irq):  ================================================================== BUG: KASAN: slab-out-of-bounds in e1000_tbi_should_accept+0x610/0x790 Read of size 1 at addr ffff888014114e54 by task sshd/363  CPU: 0 PID: 363 Comm: sshd Not tainted 5.18.0-rc1 #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014 Call Trace:  <IRQ>  dump_stack_lvl+0x5a/0x74  print_address_description+0x7b/0x440  print_report+0x101/0x200  kasan_report+0xc1/0xf0  e1000_tbi_should_accept+0x610/0x790  e1000_clean_rx_irq+0xa8c/0x1110  e1000_clean+0xde2/0x3c10  __napi_poll+0x98/0x380  net_rx_action+0x491/0xa20  __do_softirq+0x2c9/0x61d  do_softirq+0xd1/0x120  </IRQ>  <TASK>  __local_bh_enable_ip+0xfe/0x130  ip_finish_output2+0x7d5/0xb00  __ip_queue_xmit+0xe24/0x1ab0  __tcp_transmit_skb+0x1bcb/0x3340  tcp_write_xmit+0x175d/0x6bd0  __tcp_push_pending_frames+0x7b/0x280  tcp_sendmsg_locked+0x2e4f/0x32d0  tcp_sendmsg+0x24/0x40  sock_write_iter+0x322/0x430  vfs_write+0x56c/0xa60  ksys_write+0xd1/0x190  do_syscall_64+0x43/0x90  entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f511b476b10 Code: 73 01 c3 48 8b 0d 88 d3 2b 00 f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 83 3d f9 2b 2c 00 00 75 10 b8 01 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 31 c3 48 83 ec 08 e8 8e 9b 01 00 48 89 04 24 RSP: 002b:00007ffc9211d4e8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 0000000000004024 RCX: 00007f511b476b10 RDX: 0000000000004024 RSI: 0000559a9385962c RDI: 0000000000000003 RBP: 0000559a9383a400 R08: fffffffffffffff0 R09: 0000000000004f00 R10: 0000000000000070 R11: 0000000000000246 R12: 0000000000000000 R13: 00007ffc9211d57f R14: 0000559a9347bde7 R15: 0000000000000003  </TASK> Allocated by task 1:  __kasan_krealloc+0x131/0x1c0  krealloc+0x90/0xc0  add_sysfs_param+0xcb/0x8a0  kernel_add_sysfs_param+0x81/0xd4  param_sysfs_builtin+0x138/0x1a6  param_sysfs_init+0x57/0x5b  do_one_initcall+0x104/0x250  do_initcall_level+0x102/0x132  do_initcalls+0x46/0x74  kernel_init_freeable+0x28f/0x393  kernel_init+0x14/0x1a0  ret_from_fork+0x22/0x30 The buggy address belongs to the object at ffff888014114000  which belongs to the cache kmalloc-2k of size 2048 The buggy address is located 1620 bytes to the right of  2048-byte region [ffff888014114000, ffff888014114800] The buggy address belongs to the physical page: page:ffffea0000504400 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x14110 head:ffffea0000504400 order:3 compound_mapcount:0 compound_pincount:0 flags: 0x100000000010200(slab|head|node=0|zone=1) raw: 0100000000010200 0000000000000000 dead000000000001 ffff888013442000 raw: 0000000000000000 0000000000080008 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected ==================================================================  This happens because the TBI check unconditionally dereferences the last byte without validating the reported length first:  \tu8 last_byte = *(data + length - 1);  Fix by rejecting the frame early if the length is zero, or if it exceeds adapter->rx_buffer_len. This preserves the TBI workaround semantics for valid frames and prevents touching memory beyond the RX buffer.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71084",
                        "url": "https://ubuntu.com/security/CVE-2025-71084",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/cm: Fix leaking the multicast GID table reference  If the CM ID is destroyed while the CM event for multicast creating is still queued the cancel_work_sync() will prevent the work from running which also prevents destroying the ah_attr. This leaks a refcount and triggers a WARN:     GID entry ref leak for dev syz1 index 2 ref=573    WARNING: CPU: 1 PID: 655 at drivers/infiniband/core/cache.c:809 release_gid_table drivers/infiniband/core/cache.c:806 [inline]    WARNING: CPU: 1 PID: 655 at drivers/infiniband/core/cache.c:809 gid_table_release_one+0x284/0x3cc drivers/infiniband/core/cache.c:886  Destroy the ah_attr after canceling the work, it is safe to call this twice.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71096",
                        "url": "https://ubuntu.com/security/CVE-2025-71096",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly  The netlink response for RDMA_NL_LS_OP_IP_RESOLVE should always have a LS_NLA_TYPE_DGID attribute, it is invalid if it does not.  Use the nl parsing logic properly and call nla_parse_deprecated() to fill the nlattrs array and then directly index that array to get the data for the DGID. Just fail if it is NULL.  Remove the for loop searching for the nla, and squash the validation and parsing into one function.  Fixes an uninitialized read from the stack triggered by userspace if it does not provide the DGID to a kernel initiated RDMA_NL_LS_OP_IP_RESOLVE query.      BUG: KMSAN: uninit-value in hex_byte_pack include/linux/hex.h:13 [inline]     BUG: KMSAN: uninit-value in ip6_string+0xef4/0x13a0 lib/vsprintf.c:1490      hex_byte_pack include/linux/hex.h:13 [inline]      ip6_string+0xef4/0x13a0 lib/vsprintf.c:1490      ip6_addr_string+0x18a/0x3e0 lib/vsprintf.c:1509      ip_addr_string+0x245/0xee0 lib/vsprintf.c:1633      pointer+0xc09/0x1bd0 lib/vsprintf.c:2542      vsnprintf+0xf8a/0x1bd0 lib/vsprintf.c:2930      vprintk_store+0x3ae/0x1530 kernel/printk/printk.c:2279      vprintk_emit+0x307/0xcd0 kernel/printk/printk.c:2426      vprintk_default+0x3f/0x50 kernel/printk/printk.c:2465      vprintk+0x36/0x50 kernel/printk/printk_safe.c:82      _printk+0x17e/0x1b0 kernel/printk/printk.c:2475      ib_nl_process_good_ip_rsep drivers/infiniband/core/addr.c:128 [inline]      ib_nl_handle_ip_res_resp+0x963/0x9d0 drivers/infiniband/core/addr.c:141      rdma_nl_rcv_msg drivers/infiniband/core/netlink.c:-1 [inline]      rdma_nl_rcv_skb drivers/infiniband/core/netlink.c:239 [inline]      rdma_nl_rcv+0xefa/0x11c0 drivers/infiniband/core/netlink.c:259      netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]      netlink_unicast+0xf04/0x12b0 net/netlink/af_netlink.c:1346      netlink_sendmsg+0x10b3/0x1250 net/netlink/af_netlink.c:1896      sock_sendmsg_nosec net/socket.c:714 [inline]      __sock_sendmsg+0x333/0x3d0 net/socket.c:729      ____sys_sendmsg+0x7e0/0xd80 net/socket.c:2617      ___sys_sendmsg+0x271/0x3b0 net/socket.c:2671      __sys_sendmsg+0x1aa/0x300 net/socket.c:2703      __compat_sys_sendmsg net/compat.c:346 [inline]      __do_compat_sys_sendmsg net/compat.c:353 [inline]      __se_compat_sys_sendmsg net/compat.c:350 [inline]      __ia32_compat_sys_sendmsg+0xa4/0x100 net/compat.c:350      ia32_sys_call+0x3f6c/0x4310 arch/x86/include/generated/asm/syscalls_32.h:371      do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]      __do_fast_syscall_32+0xb0/0x150 arch/x86/entry/syscall_32.c:306      do_fast_syscall_32+0x38/0x80 arch/x86/entry/syscall_32.c:331      do_SYSENTER_32+0x1f/0x30 arch/x86/entry/syscall_32.c:3",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71136",
                        "url": "https://ubuntu.com/security/CVE-2025-71136",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: adv7842: Avoid possible out-of-bounds array accesses in adv7842_cp_log_status()  It's possible for cp_read() and hdmi_read() to return -EIO. Those values are further used as indexes for accessing arrays.  Fix that by checking return values where it's needed.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71133",
                        "url": "https://ubuntu.com/security/CVE-2025-71133",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/irdma: avoid invalid read in irdma_net_event  irdma_net_event() should not dereference anything from \"neigh\" (alias \"ptr\") until it has checked that the event is NETEVENT_NEIGH_UPDATE. Other events come with different structures pointed to by \"ptr\" and they may be smaller than struct neighbour.  Move the read of neigh->dev under the NETEVENT_NEIGH_UPDATE case.  The bug is mostly harmless, but it triggers KASAN on debug kernels:   BUG: KASAN: stack-out-of-bounds in irdma_net_event+0x32e/0x3b0 [irdma]  Read of size 8 at addr ffffc900075e07f0 by task kworker/27:2/542554   CPU: 27 PID: 542554 Comm: kworker/27:2 Kdump: loaded Not tainted 5.14.0-630.el9.x86_64+debug #1  Hardware name: [...]  Workqueue: events rt6_probe_deferred  Call Trace:   <IRQ>   dump_stack_lvl+0x60/0xb0   print_address_description.constprop.0+0x2c/0x3f0   print_report+0xb4/0x270   kasan_report+0x92/0xc0   irdma_net_event+0x32e/0x3b0 [irdma]   notifier_call_chain+0x9e/0x180   atomic_notifier_call_chain+0x5c/0x110   rt6_do_redirect+0xb91/0x1080   tcp_v6_err+0xe9b/0x13e0   icmpv6_notify+0x2b2/0x630   ndisc_redirect_rcv+0x328/0x530   icmpv6_rcv+0xc16/0x1360   ip6_protocol_deliver_rcu+0xb84/0x12e0   ip6_input_finish+0x117/0x240   ip6_input+0xc4/0x370   ipv6_rcv+0x420/0x7d0   __netif_receive_skb_one_core+0x118/0x1b0   process_backlog+0xd1/0x5d0   __napi_poll.constprop.0+0xa3/0x440   net_rx_action+0x78a/0xba0   handle_softirqs+0x2d4/0x9c0   do_softirq+0xad/0xe0   </IRQ>",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71086",
                        "url": "https://ubuntu.com/security/CVE-2025-71086",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: rose: fix invalid array index in rose_kill_by_device()  rose_kill_by_device() collects sockets into a local array[] and then iterates over them to disconnect sockets bound to a device being brought down.  The loop mistakenly indexes array[cnt] instead of array[i]. For cnt < ARRAY_SIZE(array), this reads an uninitialized entry; for cnt == ARRAY_SIZE(array), it is an out-of-bounds read. Either case can lead to an invalid socket pointer dereference and also leaks references taken via sock_hold().  Fix the index to use i.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71097",
                        "url": "https://ubuntu.com/security/CVE-2025-71097",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: Fix reference count leak when using error routes with nexthop objects  When a nexthop object is deleted, it is marked as dead and then fib_table_flush() is called to flush all the routes that are using the dead nexthop.  The current logic in fib_table_flush() is to only flush error routes (e.g., blackhole) when it is called as part of network namespace dismantle (i.e., with flush_all=true). Therefore, error routes are not flushed when their nexthop object is deleted:   # ip link add name dummy1 up type dummy  # ip nexthop add id 1 dev dummy1  # ip route add 198.51.100.1/32 nhid 1  # ip route add blackhole 198.51.100.2/32 nhid 1  # ip nexthop del id 1  # ip route show  blackhole 198.51.100.2 nhid 1 dev dummy1  As such, they keep holding a reference on the nexthop object which in turn holds a reference on the nexthop device, resulting in a reference count leak:   # ip link del dev dummy1  [   70.516258] unregister_netdevice: waiting for dummy1 to become free. Usage count = 2  Fix by flushing error routes when their nexthop is marked as dead.  IPv6 does not suffer from this problem.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71085",
                        "url": "https://ubuntu.com/security/CVE-2025-71085",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()  There exists a kernel oops caused by a BUG_ON(nhead < 0) at net/core/skbuff.c:2232 in pskb_expand_head(). This bug is triggered as part of the calipso_skbuff_setattr() routine when skb_cow() is passed headroom > INT_MAX (i.e. (int)(skb_headroom(skb) + len_delta) < 0).  The root cause of the bug is due to an implicit integer cast in __skb_cow(). The check (headroom > skb_headroom(skb)) is meant to ensure that delta = headroom - skb_headroom(skb) is never negative, otherwise we will trigger a BUG_ON in pskb_expand_head(). However, if headroom > INT_MAX and delta <= -NET_SKB_PAD, the check passes, delta becomes negative, and pskb_expand_head() is passed a negative value for nhead.  Fix the trigger condition in calipso_skbuff_setattr(). Avoid passing \"negative\" headroom sizes to skb_cow() within calipso_skbuff_setattr() by only using skb_cow() to grow headroom.  PoC: \tUsing `netlabelctl` tool:          netlabelctl map del default         netlabelctl calipso add pass doi:7         netlabelctl map add default address:0::1/128 protocol:calipso,7          Then run the following PoC:          int fd = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);          // setup msghdr         int cmsg_size = 2;         int cmsg_len = 0x60;         struct msghdr msg;         struct sockaddr_in6 dest_addr;         struct cmsghdr * cmsg = (struct cmsghdr *) calloc(1,                         sizeof(struct cmsghdr) + cmsg_len);         msg.msg_name = &dest_addr;         msg.msg_namelen = sizeof(dest_addr);         msg.msg_iov = NULL;         msg.msg_iovlen = 0;         msg.msg_control = cmsg;         msg.msg_controllen = cmsg_len;         msg.msg_flags = 0;          // setup sockaddr         dest_addr.sin6_family = AF_INET6;         dest_addr.sin6_port = htons(31337);         dest_addr.sin6_flowinfo = htonl(31337);         dest_addr.sin6_addr = in6addr_loopback;         dest_addr.sin6_scope_id = 31337;          // setup cmsghdr         cmsg->cmsg_len = cmsg_len;         cmsg->cmsg_level = IPPROTO_IPV6;         cmsg->cmsg_type = IPV6_HOPOPTS;         char * hop_hdr = (char *)cmsg + sizeof(struct cmsghdr);         hop_hdr[1] = 0x9; //set hop size - (0x9 + 1) * 8 = 80          sendmsg(fd, &msg, 0);",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71137",
                        "url": "https://ubuntu.com/security/CVE-2025-71137",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  octeontx2-pf: fix \"UBSAN: shift-out-of-bounds error\"  This patch ensures that the RX ring size (rx_pending) is not set below the permitted length. This avoids UBSAN shift-out-of-bounds errors when users passes small or zero ring sizes via ethtool -G.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71094",
                        "url": "https://ubuntu.com/security/CVE-2025-71094",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: asix: validate PHY address before use  The ASIX driver reads the PHY address from the USB device via asix_read_phy_addr(). A malicious or faulty device can return an invalid address (>= PHY_MAX_ADDR), which causes a warning in mdiobus_get_phy():    addr 207 out of range   WARNING: drivers/net/phy/mdio_bus.c:76  Validate the PHY address in asix_read_phy_addr() and remove the now-redundant check in ax88172a.c.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71132",
                        "url": "https://ubuntu.com/security/CVE-2025-71132",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smc91x: fix broken irq-context in PREEMPT_RT  When smc91x.c is built with PREEMPT_RT, the following splat occurs in FVP_RevC:  [   13.055000] smc91x LNRO0003:00 eth0: link up, 10Mbps, half-duplex, lpa 0x0000 [   13.062137] BUG: workqueue leaked atomic, lock or RCU: kworker/2:1[106] [   13.062137]      preempt=0x00000000 lock=0->0 RCU=0->1 workfn=mld_ifc_work [   13.062266] C ** replaying previous printk message ** [   13.062266] CPU: 2 UID: 0 PID: 106 Comm: kworker/2:1 Not tainted 6.18.0-dirty #179 PREEMPT_{RT,(full)} [   13.062353] Hardware name:  , BIOS [   13.062382] Workqueue: mld mld_ifc_work [   13.062469] Call trace: [   13.062494]  show_stack+0x24/0x40 (C) [   13.062602]  __dump_stack+0x28/0x48 [   13.062710]  dump_stack_lvl+0x7c/0xb0 [   13.062818]  dump_stack+0x18/0x34 [   13.062926]  process_scheduled_works+0x294/0x450 [   13.063043]  worker_thread+0x260/0x3d8 [   13.063124]  kthread+0x1c4/0x228 [   13.063235]  ret_from_fork+0x10/0x20  This happens because smc_special_trylock() disables IRQs even on PREEMPT_RT, but smc_special_unlock() does not restore IRQs on PREEMPT_RT. The reason is that smc_special_unlock() calls spin_unlock_irqrestore(), and rcu_read_unlock_bh() in __dev_queue_xmit() cannot invoke rcu_read_unlock() through __local_bh_enable_ip() when current->softirq_disable_cnt becomes zero.  To address this issue, replace smc_special_trylock() with spin_trylock_irqsave().",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71154",
                        "url": "https://ubuntu.com/security/CVE-2025-71154",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: rtl8150: fix memory leak on usb_submit_urb() failure  In async_set_registers(), when usb_submit_urb() fails, the allocated   async_req structure and URB are not freed, causing a memory leak.    The completion callback async_set_reg_cb() is responsible for freeing   these allocations, but it is only called after the URB is successfully   submitted and completes (successfully or with error). If submission   fails, the callback never runs and the memory is leaked.    Fix this by freeing both the URB and the request structure in the error   path when usb_submit_urb() fails.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71091",
                        "url": "https://ubuntu.com/security/CVE-2025-71091",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  team: fix check for port enabled in team_queue_override_port_prio_changed()  There has been a syzkaller bug reported recently with the following trace:  list_del corruption, ffff888058bea080->prev is LIST_POISON2 (dead000000000122) ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:59! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 3 UID: 0 PID: 21246 Comm: syz.0.2928 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:__list_del_entry_valid_or_report+0x13e/0x200 lib/list_debug.c:59 Code: 48 c7 c7 e0 71 f0 8b e8 30 08 ef fc 90 0f 0b 48 89 ef e8 a5 02 55 fd 48 89 ea 48 89 de 48 c7 c7 40 72 f0 8b e8 13 08 ef fc 90 <0f> 0b 48 89 ef e8 88 02 55 fd 48 89 ea 48 b8 00 00 00 00 00 fc ff RSP: 0018:ffffc9000d49f370 EFLAGS: 00010286 RAX: 000000000000004e RBX: ffff888058bea080 RCX: ffffc9002817d000 RDX: 0000000000000000 RSI: ffffffff819becc6 RDI: 0000000000000005 RBP: dead000000000122 R08: 0000000000000005 R09: 0000000000000000 R10: 0000000080000000 R11: 0000000000000001 R12: ffff888039e9c230 R13: ffff888058bea088 R14: ffff888058bea080 R15: ffff888055461480 FS:  00007fbbcfe6f6c0(0000) GS:ffff8880d6d0a000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000110c3afcb0 CR3: 00000000382c7000 CR4: 0000000000352ef0 Call Trace:  <TASK>  __list_del_entry_valid include/linux/list.h:132 [inline]  __list_del_entry include/linux/list.h:223 [inline]  list_del_rcu include/linux/rculist.h:178 [inline]  __team_queue_override_port_del drivers/net/team/team_core.c:826 [inline]  __team_queue_override_port_del drivers/net/team/team_core.c:821 [inline]  team_queue_override_port_prio_changed drivers/net/team/team_core.c:883 [inline]  team_priority_option_set+0x171/0x2f0 drivers/net/team/team_core.c:1534  team_option_set drivers/net/team/team_core.c:376 [inline]  team_nl_options_set_doit+0x8ae/0xe60 drivers/net/team/team_core.c:2653  genl_family_rcv_msg_doit+0x209/0x2f0 net/netlink/genetlink.c:1115  genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]  genl_rcv_msg+0x55c/0x800 net/netlink/genetlink.c:1210  netlink_rcv_skb+0x158/0x420 net/netlink/af_netlink.c:2552  genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219  netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]  netlink_unicast+0x5aa/0x870 net/netlink/af_netlink.c:1346  netlink_sendmsg+0x8c8/0xdd0 net/netlink/af_netlink.c:1896  sock_sendmsg_nosec net/socket.c:727 [inline]  __sock_sendmsg net/socket.c:742 [inline]  ____sys_sendmsg+0xa98/0xc70 net/socket.c:2630  ___sys_sendmsg+0x134/0x1d0 net/socket.c:2684  __sys_sendmsg+0x16d/0x220 net/socket.c:2716  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xcd/0xfa0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  The problem is in this flow: 1) Port is enabled, queue_id != 0, in qom_list 2) Port gets disabled         -> team_port_disable()         -> team_queue_override_port_del()         -> del (removed from list) 3) Port is disabled, queue_id != 0, not in any list 4) Priority changes         -> team_queue_override_port_prio_changed()         -> checks: port disabled && queue_id != 0         -> calls del - hits the BUG as it is removed already  To fix this, change the check in team_queue_override_port_prio_changed() so it returns early if port is not enabled.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71098",
                        "url": "https://ubuntu.com/security/CVE-2025-71098",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ip6_gre: make ip6gre_header() robust  Over the years, syzbot found many ways to crash the kernel in ip6gre_header() [1].  This involves team or bonding drivers ability to dynamically change their dev->needed_headroom and/or dev->hard_header_len  In this particular crash mld_newpack() allocated an skb with a too small reserve/headroom, and by the time mld_sendpack() was called, syzbot managed to attach an ip6gre device.  [1] skbuff: skb_under_panic: text:ffffffff8a1d69a8 len:136 put:40 head:ffff888059bc7000 data:ffff888059bc6fe8 tail:0x70 end:0x6c0 dev:team0 ------------[ cut here ]------------  kernel BUG at net/core/skbuff.c:213 !  <TASK>   skb_under_panic net/core/skbuff.c:223 [inline]   skb_push+0xc3/0xe0 net/core/skbuff.c:2641   ip6gre_header+0xc8/0x790 net/ipv6/ip6_gre.c:1371   dev_hard_header include/linux/netdevice.h:3436 [inline]   neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618   neigh_output include/net/neighbour.h:556 [inline]   ip6_finish_output2+0xfb3/0x1480 net/ipv6/ip6_output.c:136  __ip6_finish_output net/ipv6/ip6_output.c:-1 [inline]   ip6_finish_output+0x234/0x7d0 net/ipv6/ip6_output.c:220   NF_HOOK_COND include/linux/netfilter.h:307 [inline]   ip6_output+0x340/0x550 net/ipv6/ip6_output.c:247   NF_HOOK+0x9e/0x380 include/linux/netfilter.h:318   mld_sendpack+0x8d4/0xe60 net/ipv6/mcast.c:1855   mld_send_cr net/ipv6/mcast.c:2154 [inline]   mld_ifc_work+0x83e/0xd60 net/ipv6/mcast.c:2693",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71082",
                        "url": "https://ubuntu.com/security/CVE-2025-71082",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: btusb: revert use of devm_kzalloc in btusb  This reverts commit 98921dbd00c4e (\"Bluetooth: Use devm_kzalloc in btusb.c file\").  In btusb_probe(), we use devm_kzalloc() to allocate the btusb data. This ties the lifetime of all the btusb data to the binding of a driver to one interface, INTF. In a driver that binds to other interfaces, ISOC and DIAG, this is an accident waiting to happen.  The issue is revealed in btusb_disconnect(), where calling usb_driver_release_interface(&btusb_driver, data->intf) will have devm free the data that is also being used by the other interfaces of the driver that may not be released yet.  To fix this, revert the use of devm and go back to freeing memory explicitly.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71131",
                        "url": "https://ubuntu.com/security/CVE-2025-71131",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: seqiv - Do not use req->iv after crypto_aead_encrypt  As soon as crypto_aead_encrypt is called, the underlying request may be freed by an asynchronous completion.  Thus dereferencing req->iv after it returns is invalid.  Instead of checking req->iv against info, create a new variable unaligned_info and use it for that purpose instead.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71087",
                        "url": "https://ubuntu.com/security/CVE-2025-71087",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iavf: fix off-by-one issues in iavf_config_rss_reg()  There are off-by-one bugs when configuring RSS hash key and lookup table, causing out-of-bounds reads to memory [1] and out-of-bounds writes to device registers.  Before commit 43a3d9ba34c9 (\"i40evf: Allow PF driver to configure RSS\"), the loop upper bounds were:     i <= I40E_VFQF_{HKEY,HLUT}_MAX_INDEX which is safe since the value is the last valid index.  That commit changed the bounds to:     i <= adapter->rss_{key,lut}_size / 4 where `rss_{key,lut}_size / 4` is the number of dwords, so the last valid index is `(rss_{key,lut}_size / 4) - 1`. Therefore, using `<=` accesses one element past the end.  Fix the issues by using `<` instead of `<=`, ensuring we do not exceed the bounds.  [1] KASAN splat about rss_key_size off-by-one   BUG: KASAN: slab-out-of-bounds in iavf_config_rss+0x619/0x800   Read of size 4 at addr ffff888102c50134 by task kworker/u8:6/63    CPU: 0 UID: 0 PID: 63 Comm: kworker/u8:6 Not tainted 6.18.0-rc2-enjuk-tnguy-00378-g3005f5b77652-dirty #156 PREEMPT(voluntary)   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014   Workqueue: iavf iavf_watchdog_task   Call Trace:    <TASK>    dump_stack_lvl+0x6f/0xb0    print_report+0x170/0x4f3    kasan_report+0xe1/0x1a0    iavf_config_rss+0x619/0x800    iavf_watchdog_task+0x2be7/0x3230    process_one_work+0x7fd/0x1420    worker_thread+0x4d1/0xd40    kthread+0x344/0x660    ret_from_fork+0x249/0x320    ret_from_fork_asm+0x1a/0x30    </TASK>    Allocated by task 63:    kasan_save_stack+0x30/0x50    kasan_save_track+0x14/0x30    __kasan_kmalloc+0x7f/0x90    __kmalloc_noprof+0x246/0x6f0    iavf_watchdog_task+0x28fc/0x3230    process_one_work+0x7fd/0x1420    worker_thread+0x4d1/0xd40    kthread+0x344/0x660    ret_from_fork+0x249/0x320    ret_from_fork_asm+0x1a/0x30    The buggy address belongs to the object at ffff888102c50100    which belongs to the cache kmalloc-64 of size 64   The buggy address is located 0 bytes to the right of    allocated 52-byte region [ffff888102c50100, ffff888102c50134)    The buggy address belongs to the physical page:   page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x102c50   flags: 0x200000000000000(node=0|zone=2)   page_type: f5(slab)   raw: 0200000000000000 ffff8881000418c0 dead000000000122 0000000000000000   raw: 0000000000000000 0000000080200020 00000000f5000000 0000000000000000   page dumped because: kasan: bad access detected    Memory state around the buggy address:    ffff888102c50000: 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc fc    ffff888102c50080: 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc fc   >ffff888102c50100: 00 00 00 00 00 00 04 fc fc fc fc fc fc fc fc fc                                        ^    ffff888102c50180: 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc    ffff888102c50200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71111",
                        "url": "https://ubuntu.com/security/CVE-2025-71111",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hwmon: (w83791d) Convert macros to functions to avoid TOCTOU  The macro FAN_FROM_REG evaluates its arguments multiple times. When used in lockless contexts involving shared driver data, this leads to Time-of-Check to Time-of-Use (TOCTOU) race conditions, potentially causing divide-by-zero errors.  Convert the macro to a static function. This guarantees that arguments are evaluated only once (pass-by-value), preventing the race conditions.  Additionally, in store_fan_div, move the calculation of the minimum limit inside the update lock. This ensures that the read-modify-write sequence operates on consistent data.  Adhere to the principle of minimal changes by only converting macros that evaluate arguments multiple times and are used in lockless contexts.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68814",
                        "url": "https://ubuntu.com/security/CVE-2025-68814",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  io_uring: fix filename leak in __io_openat_prep()   __io_openat_prep() allocates a struct filename using getname(). However, for the condition of the file being installed in the fixed file table as well as having O_CLOEXEC flag set, the function returns early. At that point, the request doesn't have REQ_F_NEED_CLEANUP flag set. Due to this, the memory for the newly allocated struct filename is not cleaned up, causing a memory leak.  Fix this by setting the REQ_F_NEED_CLEANUP for the request just after the successful getname() call, so that when the request is torn down, the filename will be cleaned up, along with other resources needing cleanup.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68788",
                        "url": "https://ubuntu.com/security/CVE-2025-68788",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fsnotify: do not generate ACCESS/MODIFY events on child for special files  inotify/fanotify do not allow users with no read access to a file to subscribe to events (e.g. IN_ACCESS/IN_MODIFY), but they do allow the same user to subscribe for watching events on children when the user has access to the parent directory (e.g. /dev).  Users with no read access to a file but with read access to its parent directory can still stat the file and see if it was accessed/modified via atime/mtime change.  The same is not true for special files (e.g. /dev/null). Users will not generally observe atime/mtime changes when other users read/write to special files, only when someone sets atime/mtime via utimensat().  Align fsnotify events with this stat behavior and do not generate ACCESS/MODIFY events to parent watchers on read/write of special files. The events are still generated to parent watchers on utimensat(). This closes some side-channels that could be possibly used for information exfiltration [1].  [1] https://snee.la/pdf/pubs/file-notification-attacks.pdf",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71125",
                        "url": "https://ubuntu.com/security/CVE-2025-71125",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tracing: Do not register unsupported perf events  Synthetic events currently do not have a function to register perf events. This leads to calling the tracepoint register functions with a NULL function pointer which triggers:   ------------[ cut here ]------------  WARNING: kernel/tracepoint.c:175 at tracepoint_add_func+0x357/0x370, CPU#2: perf/2272  Modules linked in: kvm_intel kvm irqbypass  CPU: 2 UID: 0 PID: 2272 Comm: perf Not tainted 6.18.0-ftest-11964-ge022764176fc-dirty #323 PREEMPTLAZY  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014  RIP: 0010:tracepoint_add_func+0x357/0x370  Code: 28 9c e8 4c 0b f5 ff eb 0f 4c 89 f7 48 c7 c6 80 4d 28 9c e8 ab 89 f4 ff 31 c0 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc cc cc cc cc <0f> 0b 49 c7 c6 ea ff ff ff e9 ee fe ff ff 0f 0b e9 f9 fe ff ff 0f  RSP: 0018:ffffabc0c44d3c40 EFLAGS: 00010246  RAX: 0000000000000001 RBX: ffff9380aa9e4060 RCX: 0000000000000000  RDX: 000000000000000a RSI: ffffffff9e1d4a98 RDI: ffff937fcf5fd6c8  RBP: 0000000000000001 R08: 0000000000000007 R09: ffff937fcf5fc780  R10: 0000000000000003 R11: ffffffff9c193910 R12: 000000000000000a  R13: ffffffff9e1e5888 R14: 0000000000000000 R15: ffffabc0c44d3c78  FS:  00007f6202f5f340(0000) GS:ffff93819f00f000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 000055d3162281a8 CR3: 0000000106a56003 CR4: 0000000000172ef0  Call Trace:   <TASK>   tracepoint_probe_register+0x5d/0x90   synth_event_reg+0x3c/0x60   perf_trace_event_init+0x204/0x340   perf_trace_init+0x85/0xd0   perf_tp_event_init+0x2e/0x50   perf_try_init_event+0x6f/0x230   ? perf_event_alloc+0x4bb/0xdc0   perf_event_alloc+0x65a/0xdc0   __se_sys_perf_event_open+0x290/0x9f0   do_syscall_64+0x93/0x7b0   ? entry_SYSCALL_64_after_hwframe+0x76/0x7e   ? trace_hardirqs_off+0x53/0xc0   entry_SYSCALL_64_after_hwframe+0x76/0x7e  Instead, have the code return -ENODEV, which doesn't warn and has perf error out with:   # perf record -e synthetic:futex_wait Error: The sys_perf_event_open() syscall returned with 19 (No such device) for event (synthetic:futex_wait). \"dmesg | grep -i perf\" may provide additional information.  Ideally perf should support synthetic events, but for now just fix the warning. The support can come later.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71104",
                        "url": "https://ubuntu.com/security/CVE-2025-71104",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV timer  When advancing the target expiration for the guest's APIC timer in periodic mode, set the expiration to \"now\" if the target expiration is in the past (similar to what is done in update_target_expiration()).  Blindly adding the period to the previous target expiration can result in KVM generating a practically unbounded number of hrtimer IRQs due to programming an expired timer over and over.  In extreme scenarios, e.g. if userspace pauses/suspends a VM for an extended duration, this can even cause hard lockups in the host.  Currently, the bug only affects Intel CPUs when using the hypervisor timer (HV timer), a.k.a. the VMX preemption timer.  Unlike the software timer, a.k.a. hrtimer, which KVM keeps running even on exits to userspace, the HV timer only runs while the guest is active.  As a result, if the vCPU does not run for an extended duration, there will be a huge gap between the target expiration and the current time the vCPU resumes running. Because the target expiration is incremented by only one period on each timer expiration, this leads to a series of timer expirations occurring rapidly after the vCPU/VM resumes.  More critically, when the vCPU first triggers a periodic HV timer expiration after resuming, advancing the expiration by only one period will result in a target expiration in the past.  As a result, the delta may be calculated as a negative value.  When the delta is converted into an absolute value (tscdeadline is an unsigned u64), the resulting value can overflow what the HV timer is capable of programming.  I.e. the large value will exceed the VMX Preemption Timer's maximum bit width of cpu_preemption_timer_multi + 32, and thus cause KVM to switch from the HV timer to the software timer (hrtimers).  After switching to the software timer, periodic timer expiration callbacks may be executed consecutively within a single clock interrupt handler, because hrtimers honors KVM's request for an expiration in the past and immediately re-invokes KVM's callback after reprogramming.  And because the interrupt handler runs with IRQs disabled, restarting KVM's hrtimer over and over until the target expiration is advanced to \"now\" can result in a hard lockup.  E.g. the following hard lockup was triggered in the host when running a Windows VM (only relevant because it used the APIC timer in periodic mode) after resuming the VM from a long suspend (in the host).    NMI watchdog: Watchdog detected hard LOCKUP on cpu 45   ...   RIP: 0010:advance_periodic_target_expiration+0x4d/0x80 [kvm]   ...   RSP: 0018:ff4f88f5d98d8ef0 EFLAGS: 00000046   RAX: fff0103f91be678e RBX: fff0103f91be678e RCX: 00843a7d9e127bcc   RDX: 0000000000000002 RSI: 0052ca4003697505 RDI: ff440d5bfbdbd500   RBP: ff440d5956f99200 R08: ff2ff2a42deb6a84 R09: 000000000002a6c0   R10: 0122d794016332b3 R11: 0000000000000000 R12: ff440db1af39cfc0   R13: ff440db1af39cfc0 R14: ffffffffc0d4a560 R15: ff440db1af39d0f8   FS:  00007f04a6ffd700(0000) GS:ff440db1af380000(0000) knlGS:000000e38a3b8000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 000000d5651feff8 CR3: 000000684e038002 CR4: 0000000000773ee0   PKRU: 55555554   Call Trace:    <IRQ>    apic_timer_fn+0x31/0x50 [kvm]    __hrtimer_run_queues+0x100/0x280    hrtimer_interrupt+0x100/0x210    ? ttwu_do_wakeup+0x19/0x160    smp_apic_timer_interrupt+0x6a/0x130    apic_timer_interrupt+0xf/0x20    </IRQ>  Moreover, if the suspend duration of the virtual machine is not long enough to trigger a hard lockup in this scenario, since commit 98c25ead5eda (\"KVM: VMX: Move preemption timer <=> hrtimer dance to common x86\"), KVM will continue using the software timer until the guest reprograms the APIC timer in some way.  Since the periodic timer does not require frequent APIC timer register programming, the guest may continue to use the software timer in ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71116",
                        "url": "https://ubuntu.com/security/CVE-2025-71116",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make decode_pool() more resilient against corrupted osdmaps  If the osdmap is (maliciously) corrupted such that the encoded length of ceph_pg_pool envelope is less than what is expected for a particular encoding version, out-of-bounds reads may ensue because the only bounds check that is there is based on that length value.  This patch adds explicit bounds checks for each field that is decoded or skipped.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71121",
                        "url": "https://ubuntu.com/security/CVE-2025-71121",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  parisc: Do not reprogram affinitiy on ASP chip  The ASP chip is a very old variant of the GSP chip and is used e.g. in HP 730 workstations. When trying to reprogram the affinity it will crash with a HPMC as the relevant registers don't seem to be at the usual location.  Let's avoid the crash by checking the sversion. Also note, that reprogramming isn't necessary either, as the HP730 is a just a single-CPU machine.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71102",
                        "url": "https://ubuntu.com/security/CVE-2025-71102",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scs: fix a wrong parameter in __scs_magic  __scs_magic() needs a 'void *' variable, but a 'struct task_struct *' is given.  'task_scs(tsk)' is the starting address of the task's shadow call stack, and '__scs_magic(task_scs(tsk))' is the end address of the task's shadow call stack.  Here should be '__scs_magic(task_scs(tsk))'.  The user-visible effect of this bug is that when CONFIG_DEBUG_STACK_USAGE is enabled, the shadow call stack usage checking function (scs_check_usage) would scan an incorrect memory range.  This could lead  1. **Inaccurate stack usage reporting**: The function would calculate    wrong usage statistics for the shadow call stack, potentially showing    incorrect value in kmsg.  2. **Potential kernel crash**: If the value of __scs_magic(tsk)is    greater than that of __scs_magic(task_scs(tsk)), the for loop may    access unmapped memory, potentially causing a kernel panic.  However,    this scenario is unlikely because task_struct is allocated via the slab    allocator (which typically returns lower addresses), while the shadow    call stack returned by task_scs(tsk) is allocated via vmalloc(which    typically returns higher addresses).  However, since this is purely a debugging feature (CONFIG_DEBUG_STACK_USAGE), normal production systems should be not unaffected.  The bug only impacts developers and testers who are actively debugging stack usage with this configuration enabled.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68804",
                        "url": "https://ubuntu.com/security/CVE-2025-68804",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/chrome: cros_ec_ishtp: Fix UAF after unbinding driver  After unbinding the driver, another kthread `cros_ec_console_log_work` is still accessing the device, resulting an UAF and crash.  The driver doesn't unregister the EC device in .remove() which should shutdown sub-devices synchronously.  Fix it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68771",
                        "url": "https://ubuntu.com/security/CVE-2025-68771",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ocfs2: fix kernel BUG in ocfs2_find_victim_chain  syzbot reported a kernel BUG in ocfs2_find_victim_chain() because the `cl_next_free_rec` field of the allocation chain list (next free slot in the chain list) is 0, triggring the BUG_ON(!cl->cl_next_free_rec) condition in ocfs2_find_victim_chain() and panicking the kernel.  To fix this, an if condition is introduced in ocfs2_claim_suballoc_bits(), just before calling ocfs2_find_victim_chain(), the code block in it being executed when either of the following conditions is true:  1. `cl_next_free_rec` is equal to 0, indicating that there are no free chains in the allocation chain list 2. `cl_next_free_rec` is greater than `cl_count` (the total number of chains in the allocation chain list)  Either of them being true is indicative of the fact that there are no chains left for usage.  This is addressed using ocfs2_error(), which prints the error log for debugging purposes, rather than panicking the kernel.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68808",
                        "url": "https://ubuntu.com/security/CVE-2025-68808",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: vidtv: initialize local pointers upon transfer of memory ownership  vidtv_channel_si_init() creates a temporary list (program, service, event) and ownership of the memory itself is transferred to the PAT/SDT/EIT tables through vidtv_psi_pat_program_assign(), vidtv_psi_sdt_service_assign(), vidtv_psi_eit_event_assign().  The problem here is that the local pointer where the memory ownership transfer was completed is not initialized to NULL. This causes the vidtv_psi_pmt_create_sec_for_each_pat_entry() function to fail, and in the flow that jumps to free_eit, the memory that was freed by vidtv_psi_*_table_destroy() can be accessed again by vidtv_psi_*_event_destroy() due to the uninitialized local pointer, so it is freed once again.  Therefore, to prevent use-after-free and double-free vulnerability, local pointers must be initialized to NULL when transferring memory ownership.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68769",
                        "url": "https://ubuntu.com/security/CVE-2025-68769",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix return value of f2fs_recover_fsync_data()  With below scripts, it will trigger panic in f2fs:  mkfs.f2fs -f /dev/vdd mount /dev/vdd /mnt/f2fs touch /mnt/f2fs/foo sync echo 111 >> /mnt/f2fs/foo f2fs_io fsync /mnt/f2fs/foo f2fs_io shutdown 2 /mnt/f2fs umount /mnt/f2fs mount -o ro,norecovery /dev/vdd /mnt/f2fs or mount -o ro,disable_roll_forward /dev/vdd /mnt/f2fs  F2FS-fs (vdd): f2fs_recover_fsync_data: recovery fsync data, check_only: 0 F2FS-fs (vdd): Mounted with checkpoint version = 7f5c361f F2FS-fs (vdd): Stopped filesystem due to reason: 0 F2FS-fs (vdd): f2fs_recover_fsync_data: recovery fsync data, check_only: 1 Filesystem f2fs get_tree() didn't set fc->root, returned 1 ------------[ cut here ]------------ kernel BUG at fs/super.c:1761! Oops: invalid opcode: 0000 [#1] SMP PTI CPU: 3 UID: 0 PID: 722 Comm: mount Not tainted 6.18.0-rc2+ #721 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:vfs_get_tree.cold+0x18/0x1a Call Trace:  <TASK>  fc_mount+0x13/0xa0  path_mount+0x34e/0xc50  __x64_sys_mount+0x121/0x150  do_syscall_64+0x84/0x800  entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fa6cc126cfe  The root cause is we missed to handle error number returned from f2fs_recover_fsync_data() when mounting image w/ ro,norecovery or ro,disable_roll_forward mount option, result in returning a positive error number to vfs_get_tree(), fix it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71069",
                        "url": "https://ubuntu.com/security/CVE-2025-71069",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: invalidate dentry cache on failed whiteout creation  F2FS can mount filesystems with corrupted directory depth values that get runtime-clamped to MAX_DIR_HASH_DEPTH. When RENAME_WHITEOUT operations are performed on such directories, f2fs_rename performs directory modifications (updating target entry and deleting source entry) before attempting to add the whiteout entry via f2fs_add_link.  If f2fs_add_link fails due to the corrupted directory structure, the function returns an error to VFS, but the partial directory modifications have already been committed to disk. VFS assumes the entire rename operation failed and does not update the dentry cache, leaving stale mappings.  In the error path, VFS does not call d_move() to update the dentry cache. This results in new_dentry still pointing to the old inode (new_inode) which has already had its i_nlink decremented to zero. The stale cache causes subsequent operations to incorrectly reference the freed inode.  This causes subsequent operations to use cached dentry information that no longer matches the on-disk state. When a second rename targets the same entry, VFS attempts to decrement i_nlink on the stale inode, which may already have i_nlink=0, triggering a WARNING in drop_nlink().  Example sequence: 1. First rename (RENAME_WHITEOUT): file2 → file1    - f2fs updates file1 entry on disk (points to inode 8)    - f2fs deletes file2 entry on disk    - f2fs_add_link(whiteout) fails (corrupted directory)    - Returns error to VFS    - VFS does not call d_move() due to error    - VFS cache still has: file1 → inode 7 (stale!)    - inode 7 has i_nlink=0 (already decremented)  2. Second rename: file3 → file1    - VFS uses stale cache: file1 → inode 7    - Tries to drop_nlink on inode 7 (i_nlink already 0)    - WARNING in drop_nlink()  Fix this by explicitly invalidating old_dentry and new_dentry when f2fs_add_link fails during whiteout creation. This forces VFS to refresh from disk on subsequent operations, ensuring cache consistency even when the rename partially succeeds.  Reproducer: 1. Mount F2FS image with corrupted i_current_depth 2. renameat2(file2, file1, RENAME_WHITEOUT) 3. renameat2(file3, file1, 0) 4. System triggers WARNING in drop_nlink()",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68782",
                        "url": "https://ubuntu.com/security/CVE-2025-68782",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: Reset t_task_cdb pointer in error case  If allocation of cmd->t_task_cdb fails, it remains NULL but is later dereferenced in the 'err' path.  In case of error, reset NULL t_task_cdb value to point at the default fixed-size buffer.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71075",
                        "url": "https://ubuntu.com/security/CVE-2025-71075",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: aic94xx: fix use-after-free in device removal path  The asd_pci_remove() function fails to synchronize with pending tasklets before freeing the asd_ha structure, leading to a potential use-after-free vulnerability.  When a device removal is triggered (via hot-unplug or module unload), race condition can occur.  The fix adds tasklet_kill() before freeing the asd_ha structure, ensuring all scheduled tasklets complete before cleanup proceeds.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68818",
                        "url": "https://ubuntu.com/security/CVE-2025-68818",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: Revert \"scsi: qla2xxx: Perform lockless command completion in abort path\"  This reverts commit 0367076b0817d5c75dfb83001ce7ce5c64d803a9.  The commit being reverted added code to __qla2x00_abort_all_cmds() to call sp->done() without holding a spinlock.  But unlike the older code below it, this new code failed to check sp->cmd_type and just assumed TYPE_SRB, which results in a jump to an invalid pointer in target-mode with TYPE_TGT_CMD:  qla2xxx [0000:65:00.0]-d034:8: qla24xx_do_nack_work create sess success   0000000009f7a79b qla2xxx [0000:65:00.0]-5003:8: ISP System Error - mbx1=1ff5h mbx2=10h   mbx3=0h mbx4=0h mbx5=191h mbx6=0h mbx7=0h. qla2xxx [0000:65:00.0]-d01e:8: -> fwdump no buffer qla2xxx [0000:65:00.0]-f03a:8: qla_target(0): System error async event   0x8002 occurred qla2xxx [0000:65:00.0]-00af:8: Performing ISP error recovery -   ha=0000000058183fda. BUG: kernel NULL pointer dereference, address: 0000000000000000 PF: supervisor instruction fetch in kernel mode PF: error_code(0x0010) - not-present page PGD 0 P4D 0 Oops: 0010 [#1] SMP CPU: 2 PID: 9446 Comm: qla2xxx_8_dpc Tainted: G           O       6.1.133 #1 Hardware name: Supermicro Super Server/X11SPL-F, BIOS 4.2 12/15/2023 RIP: 0010:0x0 Code: Unable to access opcode bytes at 0xffffffffffffffd6. RSP: 0018:ffffc90001f93dc8 EFLAGS: 00010206 RAX: 0000000000000282 RBX: 0000000000000355 RCX: ffff88810d16a000 RDX: ffff88810dbadaa8 RSI: 0000000000080000 RDI: ffff888169dc38c0 RBP: ffff888169dc38c0 R08: 0000000000000001 R09: 0000000000000045 R10: ffffffffa034bdf0 R11: 0000000000000000 R12: ffff88810800bb40 R13: 0000000000001aa8 R14: ffff888100136610 R15: ffff8881070f7400 FS:  0000000000000000(0000) GS:ffff88bf80080000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffffffffd6 CR3: 000000010c8ff006 CR4: 00000000003706e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace:  <TASK>  ? __die+0x4d/0x8b  ? page_fault_oops+0x91/0x180  ? trace_buffer_unlock_commit_regs+0x38/0x1a0  ? exc_page_fault+0x391/0x5e0  ? asm_exc_page_fault+0x22/0x30  __qla2x00_abort_all_cmds+0xcb/0x3e0 [qla2xxx_scst]  qla2x00_abort_all_cmds+0x50/0x70 [qla2xxx_scst]  qla2x00_abort_isp_cleanup+0x3b7/0x4b0 [qla2xxx_scst]  qla2x00_abort_isp+0xfd/0x860 [qla2xxx_scst]  qla2x00_do_dpc+0x581/0xa40 [qla2xxx_scst]  kthread+0xa8/0xd0  </TASK>  Then commit 4475afa2646d (\"scsi: qla2xxx: Complete command early within lock\") added the spinlock back, because not having the lock caused a race and a crash.  But qla2x00_abort_srb() in the switch below already checks for qla2x00_chip_is_down() and handles it the same way, so the code above the switch is now redundant and still buggy in target-mode. Remove it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68797",
                        "url": "https://ubuntu.com/security/CVE-2025-68797",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  char: applicom: fix NULL pointer dereference in ac_ioctl  Discovered by Atuin - Automated Vulnerability Discovery Engine.  In ac_ioctl, the validation of IndexCard and the check for a valid RamIO pointer are skipped when cmd is 6. However, the function unconditionally executes readb(apbs[IndexCard].RamIO + VERS) at the end.  If cmd is 6, IndexCard may reference a board that does not exist (where RamIO is NULL), leading to a NULL pointer dereference.  Fix this by skipping the readb access when cmd is 6, as this command is a global information query and does not target a specific board context.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68819",
                        "url": "https://ubuntu.com/security/CVE-2025-68819",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()  rlen value is a user-controlled value, but dtv5100_i2c_msg() does not check the size of the rlen value. Therefore, if it is set to a value larger than sizeof(st->data), an out-of-bounds vuln occurs for st->data.  Therefore, we need to add proper range checking to prevent this vuln.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68820",
                        "url": "https://ubuntu.com/security/CVE-2025-68820",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: xattr: fix null pointer deref in ext4_raw_inode()  If ext4_get_inode_loc() fails (e.g. if it returns -EFSCORRUPTED), iloc.bh will remain set to NULL. Since ext4_xattr_inode_dec_ref_all() lacks error checking, this will lead to a null pointer dereference in ext4_raw_inode(), called right after ext4_get_inode_loc().  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71147",
                        "url": "https://ubuntu.com/security/CVE-2025-71147",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KEYS: trusted: Fix a memory leak in tpm2_load_cmd  'tpm2_load_cmd' allocates a tempoary blob indirectly via 'tpm2_key_decode' but it is not freed in the failure paths. Address this by wrapping the blob into with a cleanup helper.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-23 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71108",
                        "url": "https://ubuntu.com/security/CVE-2025-71108",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: typec: ucsi: Handle incorrect num_connectors capability  The UCSI spec states that the num_connectors field is 7 bits, and the 8th bit is reserved and should be set to zero. Some buggy FW has been known to set this bit, and it can lead to a system not booting. Flag that the FW is not behaving correctly, and auto-fix the value so that the system boots correctly.  Found on Lenovo P1 G8 during Linux enablement program. The FW will be fixed, but seemed worth addressing in case it hit platforms that aren't officially Linux supported.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71114",
                        "url": "https://ubuntu.com/security/CVE-2025-71114",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  via_wdt: fix critical boot hang due to unnamed resource allocation  The VIA watchdog driver uses allocate_resource() to reserve a MMIO region for the watchdog control register. However, the allocated resource was not given a name, which causes the kernel resource tree to contain an entry marked as \"<BAD>\" under /proc/iomem on x86 platforms.  During boot, this unnamed resource can lead to a critical hang because subsequent resource lookups and conflict checks fail to handle the invalid entry properly.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68783",
                        "url": "https://ubuntu.com/security/CVE-2025-68783",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-mixer: us16x08: validate meter packet indices  get_meter_levels_from_urb() parses the 64-byte meter packets sent by the device and fills the per-channel arrays meter_level[], comp_level[] and master_level[] in struct snd_us16x08_meter_store.  Currently the function derives the channel index directly from the meter packet (MUB2(meter_urb, s) - 1) and uses it to index those arrays without validating the range. If the packet contains a negative or out-of-range channel number, the driver may write past the end of these arrays.  Introduce a local channel variable and validate it before updating the arrays. We reject negative indices, limit meter_level[] and comp_level[] to SND_US16X08_MAX_CHANNELS, and guard master_level[] updates with ARRAY_SIZE(master_level).",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68776",
                        "url": "https://ubuntu.com/security/CVE-2025-68776",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/hsr: fix NULL pointer dereference in prp_get_untagged_frame()  prp_get_untagged_frame() calls __pskb_copy() to create frame->skb_std but doesn't check if the allocation failed. If __pskb_copy() returns NULL, skb_clone() is called with a NULL pointer, causing a crash:  Oops: general protection fault, probably for non-canonical address 0xdffffc000000000f: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000078-0x000000000000007f] CPU: 0 UID: 0 PID: 5625 Comm: syz.1.18 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:skb_clone+0xd7/0x3a0 net/core/skbuff.c:2041 Code: 03 42 80 3c 20 00 74 08 4c 89 f7 e8 23 29 05 f9 49 83 3e 00 0f 85 a0 01 00 00 e8 94 dd 9d f8 48 8d 6b 7e 49 89 ee 49 c1 ee 03 <43> 0f b6 04 26 84 c0 0f 85 d1 01 00 00 44 0f b6 7d 00 41 83 e7 0c RSP: 0018:ffffc9000d00f200 EFLAGS: 00010207 RAX: ffffffff892235a1 RBX: 0000000000000000 RCX: ffff88803372a480 RDX: 0000000000000000 RSI: 0000000000000820 RDI: 0000000000000000 RBP: 000000000000007e R08: ffffffff8f7d0f77 R09: 1ffffffff1efa1ee R10: dffffc0000000000 R11: fffffbfff1efa1ef R12: dffffc0000000000 R13: 0000000000000820 R14: 000000000000000f R15: ffff88805144cc00 FS:  0000555557f6d500(0000) GS:ffff88808d72f000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000555581d35808 CR3: 000000005040e000 CR4: 0000000000352ef0 Call Trace:  <TASK>  hsr_forward_do net/hsr/hsr_forward.c:-1 [inline]  hsr_forward_skb+0x1013/0x2860 net/hsr/hsr_forward.c:741  hsr_handle_frame+0x6ce/0xa70 net/hsr/hsr_slave.c:84  __netif_receive_skb_core+0x10b9/0x4380 net/core/dev.c:5966  __netif_receive_skb_one_core net/core/dev.c:6077 [inline]  __netif_receive_skb+0x72/0x380 net/core/dev.c:6192  netif_receive_skb_internal net/core/dev.c:6278 [inline]  netif_receive_skb+0x1cb/0x790 net/core/dev.c:6337  tun_rx_batched+0x1b9/0x730 drivers/net/tun.c:1485  tun_get_user+0x2b65/0x3e90 drivers/net/tun.c:1953  tun_chr_write_iter+0x113/0x200 drivers/net/tun.c:1999  new_sync_write fs/read_write.c:593 [inline]  vfs_write+0x5c9/0xb30 fs/read_write.c:686  ksys_write+0x145/0x250 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f0449f8e1ff Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 f9 92 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 4c 93 02 00 48 RSP: 002b:00007ffd7ad94c90 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007f044a1e5fa0 RCX: 00007f0449f8e1ff RDX: 000000000000003e RSI: 0000200000000500 RDI: 00000000000000c8 RBP: 00007ffd7ad94d20 R08: 0000000000000000 R09: 0000000000000000 R10: 000000000000003e R11: 0000000000000293 R12: 0000000000000001 R13: 00007f044a1e5fa0 R14: 00007f044a1e5fa0 R15: 0000000000000003  </TASK>  Add a NULL check immediately after __pskb_copy() to handle allocation failures gracefully.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68777",
                        "url": "https://ubuntu.com/security/CVE-2025-68777",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: ti_am335x_tsc - fix off-by-one error in wire_order validation  The current validation 'wire_order[i] > ARRAY_SIZE(config_pins)' allows wire_order[i] to equal ARRAY_SIZE(config_pins), which causes out-of-bounds access when used as index in 'config_pins[wire_order[i]]'.  Since config_pins has 4 elements (indices 0-3), the valid range for wire_order should be 0-3. Fix the off-by-one error by using >= instead of > in the validation check.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71112",
                        "url": "https://ubuntu.com/security/CVE-2025-71112",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hns3: add VLAN id validation before using  Currently, the VLAN id may be used without validation when receive a VLAN configuration mailbox from VF. The length of vlan_del_fail_bmap is BITS_TO_LONGS(VLAN_N_VID). It may cause out-of-bounds memory access once the VLAN id is bigger than or equal to VLAN_N_VID.  Therefore, VLAN id needs to be checked to ensure it is within the range of VLAN_N_VID.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71064",
                        "url": "https://ubuntu.com/security/CVE-2025-71064",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hns3: using the num_tqps in the vf driver to apply for resources  Currently, hdev->htqp is allocated using hdev->num_tqps, and kinfo->tqp is allocated using kinfo->num_tqps. However, kinfo->num_tqps is set to min(new_tqps, hdev->num_tqps);  Therefore, kinfo->num_tqps may be smaller than hdev->num_tqps, which causes some hdev->htqp[i] to remain uninitialized in hclgevf_knic_setup().  Thus, this patch allocates hdev->htqp and kinfo->tqp using hdev->num_tqps, ensuring that the lengths of hdev->htqp and kinfo->tqp are consistent and that all elements are properly initialized.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68816",
                        "url": "https://ubuntu.com/security/CVE-2025-68816",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5: fw_tracer, Validate format string parameters  Add validation for format string parameters in the firmware tracer to prevent potential security vulnerabilities and crashes from malformed format strings received from firmware.  The firmware tracer receives format strings from the device firmware and uses them to format trace messages. Without proper validation, bad firmware could provide format strings with invalid format specifiers (e.g., %s, %p, %n) that could lead to crashes, or other undefined behavior.  Add mlx5_tracer_validate_params() to validate that all format specifiers in trace strings are limited to safe integer/hex formats (%x, %d, %i, %u, %llx, %lx, etc.). Reject strings containing other format types that could be used to access arbitrary memory or cause crashes. Invalid format strings are added to the trace output for visibility with \"BAD_FORMAT: \" prefix.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68795",
                        "url": "https://ubuntu.com/security/CVE-2025-68795",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ethtool: Avoid overflowing userspace buffer on stats query  The ethtool -S command operates across three ioctl calls: ETHTOOL_GSSET_INFO for the size, ETHTOOL_GSTRINGS for the names, and ETHTOOL_GSTATS for the values.  If the number of stats changes between these calls (e.g., due to device reconfiguration), userspace's buffer allocation will be incorrect, potentially leading to buffer overflow.  Drivers are generally expected to maintain stable stat counts, but some drivers (e.g., mlx5, bnx2x, bna, ksz884x) use dynamic counters, making this scenario possible.  Some drivers try to handle this internally: - bnad_get_ethtool_stats() returns early in case stats.n_stats is not   equal to the driver's stats count. - micrel/ksz884x also makes sure not to write anything beyond   stats.n_stats and overflow the buffer.  However, both use stats.n_stats which is already assigned with the value returned from get_sset_count(), hence won't solve the issue described here.  Change ethtool_get_strings(), ethtool_get_stats(), ethtool_get_phy_stats() to not return anything in case of a mismatch between userspace's size and get_sset_size(), to prevent buffer overflow. The returned n_stats value will be equal to zero, to reflect that nothing has been returned.  This could result in one of two cases when using upstream ethtool, depending on when the size change is detected: 1. When detected in ethtool_get_strings():     # ethtool -S eth2     no stats available  2. When detected in get stats, all stats will be reported as zero.  Both cases are presumably transient, and a subsequent ethtool call should succeed.  Other than the overflow avoidance, these two cases are very evident (no output/cleared stats), which is arguably better than presenting incorrect/shifted stats. I also considered returning an error instead of a \"silent\" response, but that seems more destructive towards userspace apps.  Notes: - This patch does not claim to fix the inherent race, it only makes sure   that we do not overflow the userspace buffer, and makes for a more   predictable behavior.  - RTNL lock is held during each ioctl, the race window exists between   the separate ioctl calls when the lock is released.  - Userspace ethtool always fills stats.n_stats, but it is likely that   these stats ioctls are implemented in other userspace applications   which might not fill it. The added code checks that it's not zero,   to prevent any regressions.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68815",
                        "url": "https://ubuntu.com/security/CVE-2025-68815",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: ets: Remove drr class from the active list if it changes to strict  Whenever a user issues an ets qdisc change command, transforming a drr class into a strict one, the ets code isn't checking whether that class was in the active list and removing it. This means that, if a user changes a strict class (which was in the active list) back to a drr one, that class will be added twice to the active list [1].  Doing so with the following commands:  tc qdisc add dev lo root handle 1: ets bands 2 strict 1 tc qdisc add dev lo parent 1:2 handle 20: \\     tbf rate 8bit burst 100b latency 1s tc filter add dev lo parent 1: basic classid 1:2 ping -c1 -W0.01 -s 56 127.0.0.1 tc qdisc change dev lo root handle 1: ets bands 2 strict 2 tc qdisc change dev lo root handle 1: ets bands 2 strict 1 ping -c1 -W0.01 -s 56 127.0.0.1  Will trigger the following splat with list debug turned on:  [   59.279014][  T365] ------------[ cut here ]------------ [   59.279452][  T365] list_add double add: new=ffff88801d60e350, prev=ffff88801d60e350, next=ffff88801d60e2c0. [   59.280153][  T365] WARNING: CPU: 3 PID: 365 at lib/list_debug.c:35 __list_add_valid_or_report+0x17f/0x220 [   59.280860][  T365] Modules linked in: [   59.281165][  T365] CPU: 3 UID: 0 PID: 365 Comm: tc Not tainted 6.18.0-rc7-00105-g7e9f13163c13-dirty #239 PREEMPT(voluntary) [   59.281977][  T365] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [   59.282391][  T365] RIP: 0010:__list_add_valid_or_report+0x17f/0x220 [   59.282842][  T365] Code: 89 c6 e8 d4 b7 0d ff 90 0f 0b 90 90 31 c0 e9 31 ff ff ff 90 48 c7 c7 e0 a0 22 9f 48 89 f2 48 89 c1 4c 89 c6 e8 b2 b7 0d ff 90 <0f> 0b 90 90 31 c0 e9 0f ff ff ff 48 89 f7 48 89 44 24 10 4c 89 44 ... [   59.288812][  T365] Call Trace: [   59.289056][  T365]  <TASK> [   59.289224][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.289546][  T365]  ets_qdisc_change+0xd2b/0x1e80 [   59.289891][  T365]  ? __lock_acquire+0x7e7/0x1be0 [   59.290223][  T365]  ? __pfx_ets_qdisc_change+0x10/0x10 [   59.290546][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.290898][  T365]  ? __mutex_trylock_common+0xda/0x240 [   59.291228][  T365]  ? __pfx___mutex_trylock_common+0x10/0x10 [   59.291655][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.291993][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.292313][  T365]  ? trace_contention_end+0xc8/0x110 [   59.292656][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.293022][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.293351][  T365]  tc_modify_qdisc+0x63a/0x1cf0  Fix this by always checking and removing an ets class from the active list when changing it to strict.  [1] https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/net/sched/sch_ets.c?id=ce052b9402e461a9aded599f5b47e76bc727f7de#n663",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68799",
                        "url": "https://ubuntu.com/security/CVE-2025-68799",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  caif: fix integer underflow in cffrml_receive()  The cffrml_receive() function extracts a length field from the packet header and, when FCS is disabled, subtracts 2 from this length without validating that len >= 2.  If an attacker sends a malicious packet with a length field of 0 or 1 to an interface with FCS disabled, the subtraction causes an integer underflow.  This can lead to memory exhaustion and kernel instability, potential information disclosure if padding contains uninitialized kernel memory.  Fix this by validating that len >= 2 before performing the subtraction.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68813",
                        "url": "https://ubuntu.com/security/CVE-2025-68813",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: fix ipv4 null-ptr-deref in route error path  The IPv4 code path in __ip_vs_get_out_rt() calls dst_link_failure() without ensuring skb->dev is set, leading to a NULL pointer dereference in fib_compute_spec_dst() when ipv4_link_failure() attempts to send ICMP destination unreachable messages.  The issue emerged after commit ed0de45a1008 (\"ipv4: recompile ip options in ipv4_link_failure\") started calling __ip_options_compile() from ipv4_link_failure(). This code path eventually calls fib_compute_spec_dst() which dereferences skb->dev. An attempt was made to fix the NULL skb->dev dereference in commit 0113d9c9d1cc (\"ipv4: fix null-deref in ipv4_link_failure\"), but it only addressed the immediate dev_net(skb->dev) dereference by using a fallback device. The fix was incomplete because fib_compute_spec_dst() later in the call chain still accesses skb->dev directly, which remains NULL when IPVS calls dst_link_failure().  The crash occurs when: 1. IPVS processes a packet in NAT mode with a misconfigured destination 2. Route lookup fails in __ip_vs_get_out_rt() before establishing a route 3. The error path calls dst_link_failure(skb) with skb->dev == NULL 4. ipv4_link_failure() → ipv4_send_dest_unreach() →    __ip_options_compile() → fib_compute_spec_dst() 5. fib_compute_spec_dst() dereferences NULL skb->dev  Apply the same fix used for IPv6 in commit 326bf17ea5d4 (\"ipvs: fix ipv6 route unreach panic\"): set skb->dev from skb_dst(skb)->dev before calling dst_link_failure().  KASAN: null-ptr-deref in range [0x0000000000000328-0x000000000000032f] CPU: 1 PID: 12732 Comm: syz.1.3469 Not tainted 6.6.114 #2 RIP: 0010:__in_dev_get_rcu include/linux/inetdevice.h:233 RIP: 0010:fib_compute_spec_dst+0x17a/0x9f0 net/ipv4/fib_frontend.c:285 Call Trace:   <TASK>   spec_dst_fill net/ipv4/ip_options.c:232   spec_dst_fill net/ipv4/ip_options.c:229   __ip_options_compile+0x13a1/0x17d0 net/ipv4/ip_options.c:330   ipv4_send_dest_unreach net/ipv4/route.c:1252   ipv4_link_failure+0x702/0xb80 net/ipv4/route.c:1265   dst_link_failure include/net/dst.h:437   __ip_vs_get_out_rt+0x15fd/0x19e0 net/netfilter/ipvs/ip_vs_xmit.c:412   ip_vs_nat_xmit+0x1d8/0xc80 net/netfilter/ipvs/ip_vs_xmit.c:764",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68785",
                        "url": "https://ubuntu.com/security/CVE-2025-68785",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: openvswitch: fix middle attribute validation in push_nsh() action  The push_nsh() action structure looks like this:   OVS_ACTION_ATTR_PUSH_NSH(OVS_KEY_ATTR_NSH(OVS_NSH_KEY_ATTR_BASE,...))  The outermost OVS_ACTION_ATTR_PUSH_NSH attribute is OK'ed by the nla_for_each_nested() inside __ovs_nla_copy_actions().  The innermost OVS_NSH_KEY_ATTR_BASE/MD1/MD2 are OK'ed by the nla_for_each_nested() inside nsh_key_put_from_nlattr().  But nothing checks if the attribute in the middle is OK.  We don't even check that this attribute is the OVS_KEY_ATTR_NSH.  We just do a double unwrap with a pair of nla_data() calls - first time directly while calling validate_push_nsh() and the second time as part of the nla_for_each_nested() macro, which isn't safe, potentially causing invalid memory access if the size of this attribute is incorrect.  The failure may not be noticed during validation due to larger netlink buffer, but cause trouble later during action execution where the buffer is allocated exactly to the size:   BUG: KASAN: slab-out-of-bounds in nsh_hdr_from_nlattr+0x1dd/0x6a0 [openvswitch]  Read of size 184 at addr ffff88816459a634 by task a.out/22624   CPU: 8 UID: 0 PID: 22624 6.18.0-rc7+ #115 PREEMPT(voluntary)  Call Trace:   <TASK>   dump_stack_lvl+0x51/0x70   print_address_description.constprop.0+0x2c/0x390   kasan_report+0xdd/0x110   kasan_check_range+0x35/0x1b0   __asan_memcpy+0x20/0x60   nsh_hdr_from_nlattr+0x1dd/0x6a0 [openvswitch]   push_nsh+0x82/0x120 [openvswitch]   do_execute_actions+0x1405/0x2840 [openvswitch]   ovs_execute_actions+0xd5/0x3b0 [openvswitch]   ovs_packet_cmd_execute+0x949/0xdb0 [openvswitch]   genl_family_rcv_msg_doit+0x1d6/0x2b0   genl_family_rcv_msg+0x336/0x580   genl_rcv_msg+0x9f/0x130   netlink_rcv_skb+0x11f/0x370   genl_rcv+0x24/0x40   netlink_unicast+0x73e/0xaa0   netlink_sendmsg+0x744/0xbf0   __sys_sendto+0x3d6/0x450   do_syscall_64+0x79/0x2c0   entry_SYSCALL_64_after_hwframe+0x76/0x7e   </TASK>  Let's add some checks that the attribute is properly sized and it's the only one attribute inside the action.  Technically, there is no real reason for OVS_KEY_ATTR_NSH to be there, as we know that we're pushing an NSH header already, it just creates extra nesting, but that's how uAPI works today.  So, keeping as it is.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68800",
                        "url": "https://ubuntu.com/security/CVE-2025-68800",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mlxsw: spectrum_mr: Fix use-after-free when updating multicast route stats  Cited commit added a dedicated mutex (instead of RTNL) to protect the multicast route list, so that it will not change while the driver periodically traverses it in order to update the kernel about multicast route stats that were queried from the device.  One instance of list entry deletion (during route replace) was missed and it can result in a use-after-free [1].  Fix by acquiring the mutex before deleting the entry from the list and releasing it afterwards.  [1] BUG: KASAN: slab-use-after-free in mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum] Read of size 8 at addr ffff8881523c2fa8 by task kworker/2:5/22043  CPU: 2 UID: 0 PID: 22043 Comm: kworker/2:5 Not tainted 6.18.0-rc1-custom-g1a3d6d7cd014 #1 PREEMPT(full) Hardware name: Mellanox Technologies Ltd. MSN2010/SA002610, BIOS 5.6.5 08/24/2017 Workqueue: mlxsw_core mlxsw_sp_mr_stats_update [mlxsw_spectrum] Call Trace:  <TASK>  dump_stack_lvl+0xba/0x110  print_report+0x174/0x4f5  kasan_report+0xdf/0x110  mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30  </TASK>  Allocated by task 29933:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0x8f/0xa0  mlxsw_sp_mr_route_add+0xd8/0x4770 [mlxsw_spectrum]  mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30  Freed by task 29933:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_save_free_info+0x3b/0x70  __kasan_slab_free+0x43/0x70  kfree+0x14e/0x700  mlxsw_sp_mr_route_add+0x2dea/0x4770 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:444 [mlxsw_spectrum]  mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68801",
                        "url": "https://ubuntu.com/security/CVE-2025-68801",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mlxsw: spectrum_router: Fix neighbour use-after-free  We sometimes observe use-after-free when dereferencing a neighbour [1]. The problem seems to be that the driver stores a pointer to the neighbour, but without holding a reference on it. A reference is only taken when the neighbour is used by a nexthop.  Fix by simplifying the reference counting scheme. Always take a reference when storing a neighbour pointer in a neighbour entry. Avoid taking a referencing when the neighbour is used by a nexthop as the neighbour entry associated with the nexthop already holds a reference.  Tested by running the test that uncovered the problem over 300 times. Without this patch the problem was reproduced after a handful of iterations.  [1] BUG: KASAN: slab-use-after-free in mlxsw_sp_neigh_entry_update+0x2d4/0x310 Read of size 8 at addr ffff88817f8e3420 by task ip/3929  CPU: 3 UID: 0 PID: 3929 Comm: ip Not tainted 6.18.0-rc4-virtme-g36b21a067510 #3 PREEMPT(full) Hardware name: Nvidia SN5600/VMOD0013, BIOS 5.13 05/31/2023 Call Trace:  <TASK>  dump_stack_lvl+0x6f/0xa0  print_address_description.constprop.0+0x6e/0x300  print_report+0xfc/0x1fb  kasan_report+0xe4/0x110  mlxsw_sp_neigh_entry_update+0x2d4/0x310  mlxsw_sp_router_rif_gone_sync+0x35f/0x510  mlxsw_sp_rif_destroy+0x1ea/0x730  mlxsw_sp_inetaddr_port_vlan_event+0xa1/0x1b0  __mlxsw_sp_inetaddr_lag_event+0xcc/0x130  __mlxsw_sp_inetaddr_event+0xf5/0x3c0  mlxsw_sp_router_netdevice_event+0x1015/0x1580  notifier_call_chain+0xcc/0x150  call_netdevice_notifiers_info+0x7e/0x100  __netdev_upper_dev_unlink+0x10b/0x210  netdev_upper_dev_unlink+0x79/0xa0  vrf_del_slave+0x18/0x50  do_set_master+0x146/0x7d0  do_setlink.isra.0+0x9a0/0x2880  rtnl_newlink+0x637/0xb20  rtnetlink_rcv_msg+0x6fe/0xb90  netlink_rcv_skb+0x123/0x380  netlink_unicast+0x4a3/0x770  netlink_sendmsg+0x75b/0xc90  __sock_sendmsg+0xbe/0x160  ____sys_sendmsg+0x5b2/0x7d0  ___sys_sendmsg+0xfd/0x180  __sys_sendmsg+0x124/0x1c0  do_syscall_64+0xbb/0xfd0  entry_SYSCALL_64_after_hwframe+0x4b/0x53 [...]  Allocated by task 109:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0x7b/0x90  __kmalloc_noprof+0x2c1/0x790  neigh_alloc+0x6af/0x8f0  ___neigh_create+0x63/0xe90  mlxsw_sp_nexthop_neigh_init+0x430/0x7e0  mlxsw_sp_nexthop_type_init+0x212/0x960  mlxsw_sp_nexthop6_group_info_init.constprop.0+0x81f/0x1280  mlxsw_sp_nexthop6_group_get+0x392/0x6a0  mlxsw_sp_fib6_entry_create+0x46a/0xfd0  mlxsw_sp_router_fib6_replace+0x1ed/0x5f0  mlxsw_sp_router_fib6_event_work+0x10a/0x2a0  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20  Freed by task 154:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_save_free_info+0x3b/0x60  __kasan_slab_free+0x43/0x70  kmem_cache_free_bulk.part.0+0x1eb/0x5e0  kvfree_rcu_bulk+0x1f2/0x260  kfree_rcu_work+0x130/0x1b0  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20  Last potentially related work creation:  kasan_save_stack+0x30/0x50  kasan_record_aux_stack+0x8c/0xa0  kvfree_call_rcu+0x93/0x5b0  mlxsw_sp_router_neigh_event_work+0x67d/0x860  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71066",
                        "url": "https://ubuntu.com/security/CVE-2025-71066",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: ets: Always remove class from active list before deleting in ets_qdisc_change  zdi-disclosures@trendmicro.com says:  The vulnerability is a race condition between `ets_qdisc_dequeue` and `ets_qdisc_change`.  It leads to UAF on `struct Qdisc` object. Attacker requires the capability to create new user and network namespace in order to trigger the bug. See my additional commentary at the end of the analysis.  Analysis:  static int ets_qdisc_change(struct Qdisc *sch, struct nlattr *opt,                           struct netlink_ext_ack *extack) { ...        // (1) this lock is preventing .change handler (`ets_qdisc_change`)       //to race with .dequeue handler (`ets_qdisc_dequeue`)       sch_tree_lock(sch);        for (i = nbands; i < oldbands; i++) {               if (i >= q->nstrict && q->classes[i].qdisc->q.qlen)                       list_del_init(&q->classes[i].alist);               qdisc_purge_queue(q->classes[i].qdisc);       }        WRITE_ONCE(q->nbands, nbands);       for (i = nstrict; i < q->nstrict; i++) {               if (q->classes[i].qdisc->q.qlen) { \t\t      // (2) the class is added to the q->active                       list_add_tail(&q->classes[i].alist, &q->active);                       q->classes[i].deficit = quanta[i];               }       }       WRITE_ONCE(q->nstrict, nstrict);       memcpy(q->prio2band, priomap, sizeof(priomap));        for (i = 0; i < q->nbands; i++)               WRITE_ONCE(q->classes[i].quantum, quanta[i]);        for (i = oldbands; i < q->nbands; i++) {               q->classes[i].qdisc = queues[i];               if (q->classes[i].qdisc != &noop_qdisc)                       qdisc_hash_add(q->classes[i].qdisc, true);       }        // (3) the qdisc is unlocked, now dequeue can be called in parallel       // to the rest of .change handler       sch_tree_unlock(sch);        ets_offload_change(sch);       for (i = q->nbands; i < oldbands; i++) { \t      // (4) we're reducing the refcount for our class's qdisc and \t      //  freeing it               qdisc_put(q->classes[i].qdisc); \t      // (5) If we call .dequeue between (4) and (5), we will have \t      // a strong UAF and we can control RIP               q->classes[i].qdisc = NULL;               WRITE_ONCE(q->classes[i].quantum, 0);               q->classes[i].deficit = 0;               gnet_stats_basic_sync_init(&q->classes[i].bstats);               memset(&q->classes[i].qstats, 0, sizeof(q->classes[i].qstats));       }       return 0; }  Comment: This happens because some of the classes have their qdiscs assigned to NULL, but remain in the active list. This commit fixes this issue by always removing the class from the active list before deleting and freeing its associated qdisc  Reproducer Steps (trimmed version of what was sent by zdi-disclosures@trendmicro.com)  ``` DEV=\"${DEV:-lo}\" ROOT_HANDLE=\"${ROOT_HANDLE:-1:}\" BAND2_HANDLE=\"${BAND2_HANDLE:-20:}\"   # child under 1:2 PING_BYTES=\"${PING_BYTES:-48}\" PING_COUNT=\"${PING_COUNT:-200000}\" PING_DST=\"${PING_DST:-127.0.0.1}\"  SLOW_TBF_RATE=\"${SLOW_TBF_RATE:-8bit}\" SLOW_TBF_BURST=\"${SLOW_TBF_BURST:-100b}\" SLOW_TBF_LAT=\"${SLOW_TBF_LAT:-1s}\"  cleanup() {   tc qdisc del dev \"$DEV\" root 2>/dev/null } trap cleanup EXIT  ip link set \"$DEV\" up  tc qdisc del dev \"$DEV\" root 2>/dev/null || true  tc qdisc add dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 2  tc qdisc add dev \"$DEV\" parent 1:2 handle \"$BAND2_HANDLE\" \\   tbf rate \"$SLOW_TBF_RATE\" burst \"$SLOW_TBF_BURST\" latency \"$SLOW_TBF_LAT\"  tc filter add dev \"$DEV\" parent 1: protocol all prio 1 u32 match u32 0 0 flowid 1:2 tc -s qdisc ls dev $DEV  ping -I \"$DEV\" -f -c \"$PING_COUNT\" -s \"$PING_BYTES\" -W 0.001 \"$PING_DST\" \\   >/dev/null 2>&1 & tc qdisc change dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 0 tc qdisc change dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 2 tc -s qdisc ls dev $DEV tc qdisc del dev \"$DEV\" parent ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68787",
                        "url": "https://ubuntu.com/security/CVE-2025-68787",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netrom: Fix memory leak in nr_sendmsg()  syzbot reported a memory leak [1].  When function sock_alloc_send_skb() return NULL in nr_output(), the original skb is not freed, which was allocated in nr_sendmsg(). Fix this by freeing it before return.  [1] BUG: memory leak unreferenced object 0xffff888129f35500 (size 240):   comm \"syz.0.17\", pid 6119, jiffies 4294944652   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     00 00 00 00 00 00 00 00 00 10 52 28 81 88 ff ff  ..........R(....   backtrace (crc 1456a3e4):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4983 [inline]     slab_alloc_node mm/slub.c:5288 [inline]     kmem_cache_alloc_node_noprof+0x36f/0x5e0 mm/slub.c:5340     __alloc_skb+0x203/0x240 net/core/skbuff.c:660     alloc_skb include/linux/skbuff.h:1383 [inline]     alloc_skb_with_frags+0x69/0x3f0 net/core/skbuff.c:6671     sock_alloc_send_pskb+0x379/0x3e0 net/core/sock.c:2965     sock_alloc_send_skb include/net/sock.h:1859 [inline]     nr_sendmsg+0x287/0x450 net/netrom/af_netrom.c:1105     sock_sendmsg_nosec net/socket.c:727 [inline]     __sock_sendmsg net/socket.c:742 [inline]     sock_write_iter+0x293/0x2a0 net/socket.c:1195     new_sync_write fs/read_write.c:593 [inline]     vfs_write+0x45d/0x710 fs/read_write.c:686     ksys_write+0x143/0x170 fs/read_write.c:738     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]     do_syscall_64+0xa4/0xfa0 arch/x86/entry/syscall_64.c:94     entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68767",
                        "url": "https://ubuntu.com/security/CVE-2025-68767",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hfsplus: Verify inode mode when loading from disk  syzbot is reporting that S_IFMT bits of inode->i_mode can become bogus when the S_IFMT bits of the 16bits \"mode\" field loaded from disk are corrupted.  According to [1], the permissions field was treated as reserved in Mac OS 8 and 9. According to [2], the reserved field was explicitly initialized with 0, and that field must remain 0 as long as reserved. Therefore, when the \"mode\" field is not 0 (i.e. no longer reserved), the file must be S_IFDIR if dir == 1, and the file must be one of S_IFREG/S_IFLNK/S_IFCHR/ S_IFBLK/S_IFIFO/S_IFSOCK if dir == 0.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68774",
                        "url": "https://ubuntu.com/security/CVE-2025-68774",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create  When sync() and link() are called concurrently, both threads may enter hfs_bnode_find() without finding the node in the hash table and proceed to create it.  Thread A:   hfsplus_write_inode()     -> hfsplus_write_system_inode()       -> hfs_btree_write()         -> hfs_bnode_find(tree, 0)           -> __hfs_bnode_create(tree, 0)  Thread B:   hfsplus_create_cat()     -> hfs_brec_insert()       -> hfs_bnode_split()         -> hfs_bmap_alloc()           -> hfs_bnode_find(tree, 0)             -> __hfs_bnode_create(tree, 0)  In this case, thread A creates the bnode, sets refcnt=1, and hashes it. Thread B also tries to create the same bnode, notices it has already been inserted, drops its own instance, and uses the hashed one without getting the node.  ```  \tnode2 = hfs_bnode_findhash(tree, cnid); \tif (!node2) {                                 <- Thread A \t\thash = hfs_bnode_hash(cnid); \t\tnode->next_hash = tree->node_hash[hash]; \t\ttree->node_hash[hash] = node; \t\ttree->node_hash_cnt++; \t} else {                                      <- Thread B \t\tspin_unlock(&tree->hash_lock); \t\tkfree(node); \t\twait_event(node2->lock_wq, \t\t\t!test_bit(HFS_BNODE_NEW, &node2->flags)); \t\treturn node2; \t} ```  However, hfs_bnode_find() requires each call to take a reference. Here both threads end up setting refcnt=1. When they later put the node, this triggers:  BUG_ON(!atomic_read(&node->refcnt))  In this scenario, Thread B in fact finds the node in the hash table rather than creating a new one, and thus must take a reference.  Fix this by calling hfs_bnode_get() when reusing a bnode newly created by another thread to ensure the refcount is updated correctly.  A similar bug was fixed in HFS long ago in commit a9dc087fd3c4 (\"fix missing hfs_bnode_get() in __hfs_bnode_create\") but the same issue remained in HFS+ until now.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-71118",
                        "url": "https://ubuntu.com/security/CVE-2025-71118",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ACPICA: Avoid walking the Namespace if start_node is NULL  Although commit 0c9992315e73 (\"ACPICA: Avoid walking the ACPI Namespace if it is not there\") fixed the situation when both start_node and acpi_gbl_root_node are NULL, the Linux kernel mainline now still crashed on Honor Magicbook 14 Pro [1].  That happens due to the access to the member of parent_node in acpi_ns_get_next_node().  The NULL pointer dereference will always happen, no matter whether or not the start_node is equal to ACPI_ROOT_OBJECT, so move the check of start_node being NULL out of the if block.  Unfortunately, all the attempts to contact Honor have failed, they refused to provide any technical support for Linux.  The bad DSDT table's dump could be found on GitHub [2].  DMI: HONOR FMB-P/FMB-P-PCB, BIOS 1.13 05/08/2025  [ rjw: Subject adjustment, changelog edits ]",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-14 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68780",
                        "url": "https://ubuntu.com/security/CVE-2025-68780",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sched/deadline: only set free_cpus for online runqueues  Commit 16b269436b72 (\"sched/deadline: Modify cpudl::free_cpus to reflect rd->online\") introduced the cpudl_set/clear_freecpu functions to allow the cpu_dl::free_cpus mask to be manipulated by the deadline scheduler class rq_on/offline callbacks so the mask would also reflect this state.  Commit 9659e1eeee28 (\"sched/deadline: Remove cpu_active_mask from cpudl_find()\") removed the check of the cpu_active_mask to save some processing on the premise that the cpudl::free_cpus mask already reflected the runqueue online state.  Unfortunately, there are cases where it is possible for the cpudl_clear function to set the free_cpus bit for a CPU when the deadline runqueue is offline. When this occurs while a CPU is connected to the default root domain the flag may retain the bad state after the CPU has been unplugged. Later, a different CPU that is transitioning through the default root domain may push a deadline task to the powered down CPU when cpudl_find sees its free_cpus bit is set. If this happens the task will not have the opportunity to run.  One example is outlined here: https://lore.kernel.org/lkml/20250110233010.2339521-1-opendmb@gmail.com  Another occurs when the last deadline task is migrated from a CPU that has an offlined runqueue. The dequeue_task member of the deadline scheduler class will eventually call cpudl_clear and set the free_cpus bit for the CPU.  This commit modifies the cpudl_clear function to be aware of the online state of the deadline runqueue so that the free_cpus mask can be updated appropriately.  It is no longer necessary to manage the mask outside of the cpudl_set/clear functions so the cpudl_set/clear_freecpu functions are removed. In addition, since the free_cpus mask is now only updated under the cpudl lock the code was changed to use the non-atomic __cpumask functions.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-13 16:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68346",
                        "url": "https://ubuntu.com/security/CVE-2025-68346",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: dice: fix buffer overflow in detect_stream_formats()  The function detect_stream_formats() reads the stream_count value directly from a FireWire device without validating it. This can lead to out-of-bounds writes when a malicious device provides a stream_count value greater than MAX_STREAMS.  Fix by applying the same validation to both TX and RX stream counts in detect_stream_formats().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68764",
                        "url": "https://ubuntu.com/security/CVE-2025-68764",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFS: Automounted filesystems should inherit ro,noexec,nodev,sync flags  When a filesystem is being automounted, it needs to preserve the user-set superblock mount options, such as the \"ro\" flag.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68349",
                        "url": "https://ubuntu.com/security/CVE-2025-68349",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSv4/pNFS: Clear NFS_INO_LAYOUTCOMMIT in pnfs_mark_layout_stateid_invalid  Fixes a crash when layout is null during this call stack:  write_inode     -> nfs4_write_inode         -> pnfs_layoutcommit_inode  pnfs_set_layoutcommit relies on the lseg refcount to keep the layout around. Need to clear NFS_INO_LAYOUTCOMMIT otherwise we might attempt to reference a null layout.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68325",
                        "url": "https://ubuntu.com/security/CVE-2025-68325",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop  In cake_drop(), qdisc_tree_reduce_backlog() is used to update the qlen and backlog of the qdisc hierarchy. Its caller, cake_enqueue(), assumes that the parent qdisc will enqueue the current packet. However, this assumption breaks when cake_enqueue() returns NET_XMIT_CN: the parent qdisc stops enqueuing current packet, leaving the tree qlen/backlog accounting inconsistent. This mismatch can lead to a NULL dereference (e.g., when the parent Qdisc is qfq_qdisc).  This patch computes the qlen/backlog delta in a more robust way by observing the difference before and after the series of cake_drop() calls, and then compensates the qdisc tree accounting if cake_enqueue() returns NET_XMIT_CN.  To ensure correct compensation when ACK thinning is enabled, a new variable is introduced to keep qlen unchanged.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-18 15:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68354",
                        "url": "https://ubuntu.com/security/CVE-2025-68354",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regulator: core: Protect regulator_supply_alias_list with regulator_list_mutex  regulator_supply_alias_list was accessed without any locking in regulator_supply_alias(), regulator_register_supply_alias(), and regulator_unregister_supply_alias(). Concurrent registration, unregistration and lookups can race, leading to:  1 use-after-free if an alias entry is removed while being read, 2 duplicate entries when two threads register the same alias, 3 inconsistent alias mappings observed by consumers.  Protect all traversals, insertions and deletions on regulator_supply_alias_list with the existing regulator_list_mutex.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68758",
                        "url": "https://ubuntu.com/security/CVE-2025-68758",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  backlight: led-bl: Add devlink to supplier LEDs  LED Backlight is a consumer of one or multiple LED class devices, but devlink is currently unable to create correct supplier-producer links when the supplier is a class device. It creates instead a link where the supplier is the parent of the expected device.  One consequence is that removal order is not correctly enforced.  Issues happen for example with the following sections in a device tree overlay:      // An LED driver chip     pca9632@62 {         compatible = \"nxp,pca9632\";         reg = <0x62>;  \t// ...          addon_led_pwm: led-pwm@3 {             reg = <3>;             label = \"addon:led:pwm\";         };     };      backlight-addon {         compatible = \"led-backlight\";         leds = <&addon_led_pwm>;         brightness-levels = <255>;         default-brightness-level = <255>;     };  In this example, the devlink should be created between the backlight-addon (consumer) and the pca9632@62 (supplier). Instead it is created between the backlight-addon (consumer) and the parent of the pca9632@62, which is typically the I2C bus adapter.  On removal of the above overlay, the LED driver can be removed before the backlight device, resulting in:      Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010     ...     Call trace:      led_put+0xe0/0x140      devm_led_release+0x6c/0x98  Another way to reproduce the bug without any device tree overlays is unbinding the LED class device (pca9632@62) before unbinding the consumer (backlight-addon):    echo 11-0062 >/sys/bus/i2c/drivers/leds-pca963x/unbind   echo ...backlight-dock >/sys/bus/platform/drivers/led-backlight/unbind  Fix by adding a devlink between the consuming led-backlight device and the supplying LED device, as other drivers and subsystems do as well.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68765",
                        "url": "https://ubuntu.com/security/CVE-2025-68765",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()  In mt7615_mcu_wtbl_sta_add(), an skb sskb is allocated. If the subsequent call to mt76_connac_mcu_alloc_wtbl_req() fails, the function returns an error without freeing sskb, leading to a memory leak.  Fix this by calling dev_kfree_skb() on sskb in the error handling path to ensure it is properly released.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68740",
                        "url": "https://ubuntu.com/security/CVE-2025-68740",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ima: Handle error code returned by ima_filter_rule_match()  In ima_match_rules(), if ima_filter_rule_match() returns -ENOENT due to the rule being NULL, the function incorrectly skips the 'if (!rc)' check and sets 'result = true'. The LSM rule is considered a match, causing extra files to be measured by IMA.  This issue can be reproduced in the following scenario: After unloading the SELinux policy module via 'semodule -d', if an IMA measurement is triggered before ima_lsm_rules is updated, in ima_match_rules(), the first call to ima_filter_rule_match() returns -ESTALE. This causes the code to enter the 'if (rc == -ESTALE && !rule_reinitialized)' block, perform ima_lsm_copy_rule() and retry. In ima_lsm_copy_rule(), since the SELinux module has been removed, the rule becomes NULL, and the second call to ima_filter_rule_match() returns -ENOENT. This bypasses the 'if (!rc)' check and results in a false match.  Call trace:   selinux_audit_rule_match+0x310/0x3b8   security_audit_rule_match+0x60/0xa0   ima_match_rules+0x2e4/0x4a0   ima_match_policy+0x9c/0x1e8   ima_get_action+0x48/0x60   process_measurement+0xf8/0xa98   ima_bprm_check+0x98/0xd8   security_bprm_check+0x5c/0x78   search_binary_handler+0x6c/0x318   exec_binprm+0x58/0x1b8   bprm_execve+0xb8/0x130   do_execveat_common.isra.0+0x1a8/0x258   __arm64_sys_execve+0x48/0x68   invoke_syscall+0x50/0x128   el0_svc_common.constprop.0+0xc8/0xf0   do_el0_svc+0x24/0x38   el0_svc+0x44/0x200   el0t_64_sync_handler+0x100/0x130   el0t_64_sync+0x3c8/0x3d0  Fix this by changing 'if (!rc)' to 'if (rc <= 0)' to ensure that error codes like -ENOENT do not bypass the check and accidentally result in a successful match.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68362",
                        "url": "https://ubuntu.com/security/CVE-2025-68362",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rtl818x: rtl8187: Fix potential buffer underflow in rtl8187_rx_cb()  The rtl8187_rx_cb() calculates the rx descriptor header address by subtracting its size from the skb tail pointer. However, it does not validate if the received packet (skb->len from urb->actual_length) is large enough to contain this header.  If a truncated packet is received, this will lead to a buffer underflow, reading memory before the start of the skb data area, and causing a kernel panic.  Add length checks for both rtl8187 and rtl8187b descriptor headers before attempting to access them, dropping the packet cleanly if the check fails.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68759",
                        "url": "https://ubuntu.com/security/CVE-2025-68759",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()  In rtl8180_init_rx_ring(), memory is allocated for skb packets and DMA allocations in a loop. When an allocation fails, the previously successful allocations are not freed on exit.  Fix that by jumping to err_free_rings label on error, which calls rtl8180_free_rx_ring() to free the allocations. Remove the free of rx_ring in rtl8180_init_rx_ring() error path, and set the freed priv->rx_buf entry to null, to avoid double free.",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68364",
                        "url": "https://ubuntu.com/security/CVE-2025-68364",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ocfs2: relax BUG() to ocfs2_error() in __ocfs2_move_extent()  In '__ocfs2_move_extent()', relax 'BUG()' to 'ocfs2_error()' just to avoid crashing the whole kernel due to a filesystem corruption.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68366",
                        "url": "https://ubuntu.com/security/CVE-2025-68366",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nbd: defer config unlock in nbd_genl_connect  There is one use-after-free warning when running NBD_CMD_CONNECT and NBD_CLEAR_SOCK:  nbd_genl_connect   nbd_alloc_and_init_config // config_refs=1   nbd_start_device // config_refs=2   set NBD_RT_HAS_CONFIG_REF\t\t\topen nbd // config_refs=3   recv_work done // config_refs=2 \t\t\t\t\t\tNBD_CLEAR_SOCK // config_refs=1 \t\t\t\t\t\tclose nbd // config_refs=0   refcount_inc -> uaf  ------------[ cut here ]------------ refcount_t: addition on 0; use-after-free. WARNING: CPU: 24 PID: 1014 at lib/refcount.c:25 refcount_warn_saturate+0x12e/0x290  nbd_genl_connect+0x16d0/0x1ab0  genl_family_rcv_msg_doit+0x1f3/0x310  genl_rcv_msg+0x44a/0x790  The issue can be easily reproduced by adding a small delay before refcount_inc(&nbd->config_refs) in nbd_genl_connect():          mutex_unlock(&nbd->config_lock);         if (!ret) {                 set_bit(NBD_RT_HAS_CONFIG_REF, &config->runtime_flags); +               printk(\"before sleep\\n\"); +               mdelay(5 * 1000); +               printk(\"after sleep\\n\");                 refcount_inc(&nbd->config_refs);                 nbd_connect_reply(info, nbd->index);         }",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68367",
                        "url": "https://ubuntu.com/security/CVE-2025-68367",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macintosh/mac_hid: fix race condition in mac_hid_toggle_emumouse  The following warning appears when running syzkaller, and this issue also exists in the mainline code.   ------------[ cut here ]------------  list_add double add: new=ffffffffa57eee28, prev=ffffffffa57eee28, next=ffffffffa5e63100.  WARNING: CPU: 0 PID: 1491 at lib/list_debug.c:35 __list_add_valid_or_report+0xf7/0x130  Modules linked in:  CPU: 0 PID: 1491 Comm: syz.1.28 Not tainted 6.6.0+ #3  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014  RIP: 0010:__list_add_valid_or_report+0xf7/0x130  RSP: 0018:ff1100010dfb7b78 EFLAGS: 00010282  RAX: 0000000000000000 RBX: ffffffffa57eee18 RCX: ffffffff97fc9817  RDX: 0000000000040000 RSI: ffa0000002383000 RDI: 0000000000000001  RBP: ffffffffa57eee28 R08: 0000000000000001 R09: ffe21c0021bf6f2c  R10: 0000000000000001 R11: 6464615f7473696c R12: ffffffffa5e63100  R13: ffffffffa57eee28 R14: ffffffffa57eee28 R15: ff1100010dfb7d48  FS:  00007fb14398b640(0000) GS:ff11000119600000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000000 CR3: 000000010d096005 CR4: 0000000000773ef0  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000  DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400  PKRU: 80000000  Call Trace:   <TASK>   input_register_handler+0xb3/0x210   mac_hid_start_emulation+0x1c5/0x290   mac_hid_toggle_emumouse+0x20a/0x240   proc_sys_call_handler+0x4c2/0x6e0   new_sync_write+0x1b1/0x2d0   vfs_write+0x709/0x950   ksys_write+0x12a/0x250   do_syscall_64+0x5a/0x110   entry_SYSCALL_64_after_hwframe+0x78/0xe2  The WARNING occurs when two processes concurrently write to the mac-hid emulation sysctl, causing a race condition in mac_hid_toggle_emumouse(). Both processes read old_val=0, then both try to register the input handler, leading to a double list_add of the same handler.    CPU0                             CPU1   -------------------------        -------------------------   vfs_write() //write 1            vfs_write()  //write 1     proc_sys_write()                 proc_sys_write()       mac_hid_toggle_emumouse()          mac_hid_toggle_emumouse()         old_val = *valp // old_val=0                                            old_val = *valp // old_val=0                                            mutex_lock_killable()                                            proc_dointvec() // *valp=1                                            mac_hid_start_emulation()                                              input_register_handler()                                            mutex_unlock()         mutex_lock_killable()         proc_dointvec()         mac_hid_start_emulation()           input_register_handler() //Trigger Warning         mutex_unlock()  Fix this by moving the old_val read inside the mutex lock region.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68372",
                        "url": "https://ubuntu.com/security/CVE-2025-68372",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nbd: defer config put in recv_work  There is one uaf issue in recv_work when running NBD_CLEAR_SOCK and NBD_CMD_RECONFIGURE:   nbd_genl_connect     // conf_ref=2 (connect and recv_work A)   nbd_open\t       // conf_ref=3   recv_work A done     // conf_ref=2   NBD_CLEAR_SOCK       // conf_ref=1   nbd_genl_reconfigure // conf_ref=2 (trigger recv_work B)   close nbd\t       // conf_ref=1   recv_work B     config_put         // conf_ref=0     atomic_dec(&config->recv_threads); -> UAF  Or only running NBD_CLEAR_SOCK:   nbd_genl_connect   // conf_ref=2   nbd_open \t     // conf_ref=3   NBD_CLEAR_SOCK     // conf_ref=2   close nbd     nbd_release       config_put     // conf_ref=1   recv_work     config_put \t     // conf_ref=0     atomic_dec(&config->recv_threads); -> UAF  Commit 87aac3a80af5 (\"nbd: call nbd_config_put() before notifying the waiter\") moved nbd_config_put() to run before waking up the waiter in recv_work, in order to ensure that nbd_start_device_ioctl() would not be woken up while nbd->task_recv was still uncleared.  However, in nbd_start_device_ioctl(), after being woken up it explicitly calls flush_workqueue() to make sure all current works are finished. Therefore, there is no need to move the config put ahead of the wakeup.  Move nbd_config_put() to the end of recv_work, so that the reference is held for the whole lifetime of the worker thread. This makes sure the config cannot be freed while recv_work is still running, even if clear + reconfigure interleave.  In addition, we don't need to worry about recv_work dropping the last nbd_put (which causes deadlock):  path A (netlink with NBD_CFLAG_DESTROY_ON_DISCONNECT):   connect  // nbd_refs=1 (trigger recv_work)   open nbd // nbd_refs=2   NBD_CLEAR_SOCK   close nbd     nbd_release       nbd_disconnect_and_put         flush_workqueue // recv_work done       nbd_config_put         nbd_put // nbd_refs=1       nbd_put // nbd_refs=0         queue_work  path B (netlink without NBD_CFLAG_DESTROY_ON_DISCONNECT):   connect  // nbd_refs=2 (trigger recv_work)   open nbd // nbd_refs=3   NBD_CLEAR_SOCK // conf_refs=2   close nbd     nbd_release       nbd_config_put // conf_refs=1       nbd_put // nbd_refs=2   recv_work done // conf_refs=0, nbd_refs=1   rmmod // nbd_refs=0  Depends-on: e2daec488c57 (\"nbd: Fix hungtask when nbd_config_put\")",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68746",
                        "url": "https://ubuntu.com/security/CVE-2025-68746",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: tegra210-quad: Fix timeout handling  When the CPU that the QSPI interrupt handler runs on (typically CPU 0) is excessively busy, it can lead to rare cases of the IRQ thread not running before the transfer timeout is reached.  While handling the timeouts, any pending transfers are cleaned up and the message that they correspond to is marked as failed, which leaves the curr_xfer field pointing at stale memory.  To avoid this, clear curr_xfer to NULL upon timeout and check for this condition when the IRQ thread is finally run.  While at it, also make sure to clear interrupts on failure so that new interrupts can be run.  A better, more involved, fix would move the interrupt clearing into a hard IRQ handler. Ideally we would also want to signal that the IRQ thread no longer needs to be run after the timeout is hit to avoid the extra check for a valid transfer.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 13:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68724",
                        "url": "https://ubuntu.com/security/CVE-2025-68724",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: asymmetric_keys - prevent overflow in asymmetric_key_generate_id  Use check_add_overflow() to guard against potential integer overflows when adding the binary blob lengths and the size of an asymmetric_key_id structure and return ERR_PTR(-EOVERFLOW) accordingly. This prevents a possible buffer overflow when copying data from potentially malicious X.509 certificate fields that can be arbitrarily large, such as ASN.1 INTEGER serial numbers, issuer names, etc.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68727",
                        "url": "https://ubuntu.com/security/CVE-2025-68727",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: Fix uninit buffer allocated by __getname()  Fix uninit errors caused after buffer allocation given to 'de'; by initializing the buffer with zeroes. The fix was found by using KMSAN.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68728",
                        "url": "https://ubuntu.com/security/CVE-2025-68728",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: fix uninit memory after failed mi_read in mi_format_new  Fix a KMSAN un-init bug found by syzkaller.  ntfs_get_bh() expects a buffer from sb_getblk(), that buffer may not be uptodate. We do not bring the buffer uptodate before setting it as uptodate. If the buffer were to not be uptodate, it could mean adding a buffer with un-init data to the mi record. Attempting to load that record will trigger KMSAN.  Avoid this by setting the buffer as uptodate, if it’s not already, by overwriting it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68757",
                        "url": "https://ubuntu.com/security/CVE-2025-68757",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vgem-fence: Fix potential deadlock on release  A timer that expires a vgem fence automatically in 10 seconds is now released with timer_delete_sync() from fence->ops.release() called on last dma_fence_put().  In some scenarios, it can run in IRQ context, which is not safe unless TIMER_IRQSAFE is used.  One potentially risky scenario was demonstrated in Intel DRM CI trybot, BAT run on machine bat-adlp-6, while working on new IGT subtests syncobj_timeline@stress-* as user space replacements of some problematic test cases of a dma-fence-chain selftest [1].  [117.004338] ================================ [117.004340] WARNING: inconsistent lock state [117.004342] 6.17.0-rc7-CI_DRM_17270-g7644974e648c+ #1 Tainted: G S   U [117.004346] -------------------------------- [117.004347] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. [117.004349] swapper/0/0 [HC1[1]:SC1[1]:HE0:SE0] takes: [117.004352] ffff888138f86aa8 ((&fence->timer)){?.-.}-{0:0}, at: __timer_delete_sync+0x4b/0x190 [117.004361] {HARDIRQ-ON-W} state was registered at: [117.004363]   lock_acquire+0xc4/0x2e0 [117.004366]   call_timer_fn+0x80/0x2a0 [117.004368]   __run_timers+0x231/0x310 [117.004370]   run_timer_softirq+0x76/0xe0 [117.004372]   handle_softirqs+0xd4/0x4d0 [117.004375]   __irq_exit_rcu+0x13f/0x160 [117.004377]   irq_exit_rcu+0xe/0x20 [117.004379]   sysvec_apic_timer_interrupt+0xa0/0xc0 [117.004382]   asm_sysvec_apic_timer_interrupt+0x1b/0x20 [117.004385]   cpuidle_enter_state+0x12b/0x8a0 [117.004388]   cpuidle_enter+0x2e/0x50 [117.004393]   call_cpuidle+0x22/0x60 [117.004395]   do_idle+0x1fd/0x260 [117.004398]   cpu_startup_entry+0x29/0x30 [117.004401]   start_secondary+0x12d/0x160 [117.004404]   common_startup_64+0x13e/0x141 [117.004407] irq event stamp: 2282669 [117.004409] hardirqs last  enabled at (2282668): [<ffffffff8289db71>] _raw_spin_unlock_irqrestore+0x51/0x80 [117.004414] hardirqs last disabled at (2282669): [<ffffffff82882021>] sysvec_irq_work+0x11/0xc0 [117.004419] softirqs last  enabled at (2254702): [<ffffffff8289fd00>] __do_softirq+0x10/0x18 [117.004423] softirqs last disabled at (2254725): [<ffffffff813d4ddf>] __irq_exit_rcu+0x13f/0x160 [117.004426] other info that might help us debug this: [117.004429]  Possible unsafe locking scenario: [117.004432]        CPU0 [117.004433]        ---- [117.004434]   lock((&fence->timer)); [117.004436]   <Interrupt> [117.004438]     lock((&fence->timer)); [117.004440]  *** DEADLOCK *** [117.004443] 1 lock held by swapper/0/0: [117.004445]  #0: ffffc90000003d50 ((&fence->timer)){?.-.}-{0:0}, at: call_timer_fn+0x7a/0x2a0 [117.004450] stack backtrace: [117.004453] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G S   U             6.17.0-rc7-CI_DRM_17270-g7644974e648c+ #1 PREEMPT(voluntary) [117.004455] Tainted: [S]=CPU_OUT_OF_SPEC, [U]=USER [117.004455] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR4 RVP, BIOS RPLPFWI1.R00.4035.A00.2301200723 01/20/2023 [117.004456] Call Trace: [117.004456]  <IRQ> [117.004457]  dump_stack_lvl+0x91/0xf0 [117.004460]  dump_stack+0x10/0x20 [117.004461]  print_usage_bug.part.0+0x260/0x360 [117.004463]  mark_lock+0x76e/0x9c0 [117.004465]  ? register_lock_class+0x48/0x4a0 [117.004467]  __lock_acquire+0xbc3/0x2860 [117.004469]  lock_acquire+0xc4/0x2e0 [117.004470]  ? __timer_delete_sync+0x4b/0x190 [117.004472]  ? __timer_delete_sync+0x4b/0x190 [117.004473]  __timer_delete_sync+0x68/0x190 [117.004474]  ? __timer_delete_sync+0x4b/0x190 [117.004475]  timer_delete_sync+0x10/0x20 [117.004476]  vgem_fence_release+0x19/0x30 [vgem] [117.004478]  dma_fence_release+0xc1/0x3b0 [117.004480]  ? dma_fence_release+0xa1/0x3b0 [117.004481]  dma_fence_chain_release+0xe7/0x130 [117.004483]  dma_fence_release+0xc1/0x3b0 [117.004484]  ? _raw_spin_unlock_irqrestore+0x27/0x80 [117.004485]  dma_fence_chain_irq_work+0x59/0x80 [117.004487]  irq_work_single+0x75/0xa0 [117.004490]  irq_work_r ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2026-01-05 10:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68732",
                        "url": "https://ubuntu.com/security/CVE-2025-68732",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gpu: host1x: Fix race in syncpt alloc/free  Fix race condition between host1x_syncpt_alloc() and host1x_syncpt_put() by using kref_put_mutex() instead of kref_put() + manual mutex locking.  This ensures no thread can acquire the syncpt_mutex after the refcount drops to zero but before syncpt_release acquires it. This prevents races where syncpoints could be allocated while still being cleaned up from a previous release.  Remove explicit mutex locking in syncpt_release as kref_put_mutex() handles this atomically.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68733",
                        "url": "https://ubuntu.com/security/CVE-2025-68733",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smack: fix bug: unprivileged task can create labels  If an unprivileged task is allowed to relabel itself (/smack/relabel-self is not empty), it can freely create new labels by writing their names into own /proc/PID/attr/smack/current  This occurs because do_setattr() imports the provided label in advance, before checking \"relabel-self\" list.  This change ensures that the \"relabel-self\" list is checked before importing the label.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68254",
                        "url": "https://ubuntu.com/security/CVE-2025-68254",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix out-of-bounds read in OnBeacon ESR IE parsing  The Extended Supported Rates (ESR) IE handling in OnBeacon accessed *(p + 1 + ielen) and *(p + 2 + ielen) without verifying that these offsets lie within the received frame buffer. A malformed beacon with an ESR IE positioned at the end of the buffer could cause an out-of-bounds read, potentially triggering a kernel panic.  Add a boundary check to ensure that the ESR IE body and the subsequent bytes are within the limits of the frame before attempting to access them.  This prevents OOB reads caused by malformed beacon frames.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68255",
                        "url": "https://ubuntu.com/security/CVE-2025-68255",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix stack buffer overflow in OnAssocReq IE parsing  The Supported Rates IE length from an incoming Association Request frame was used directly as the memcpy() length when copying into a fixed-size 16-byte stack buffer (supportRate). A malicious station can advertise an IE length larger than 16 bytes, causing a stack buffer overflow.  Clamp ie_len to the buffer size before copying the Supported Rates IE, and correct the bounds check when merging Extended Supported Rates to prevent a second potential overflow.  This prevents kernel stack corruption triggered by malformed association requests.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68257",
                        "url": "https://ubuntu.com/security/CVE-2025-68257",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: check device's attached status in compat ioctls  Syzbot identified an issue [1] that crashes kernel, seemingly due to unexistent callback dev->get_valid_routes(). By all means, this should not occur as said callback must always be set to get_zero_valid_routes() in __comedi_device_postconfig().  As the crash seems to appear exclusively in i386 kernels, at least, judging from [1] reports, the blame lies with compat versions of standard IOCTL handlers. Several of them are modified and do not use comedi_unlocked_ioctl(). While functionality of these ioctls essentially copy their original versions, they do not have required sanity check for device's attached status. This, in turn, leads to a possibility of calling select IOCTLs on a device that has not been properly setup, even via COMEDI_DEVCONFIG.  Doing so on unconfigured devices means that several crucial steps are missed, for instance, specifying dev->get_valid_routes() callback.  Fix this somewhat crudely by ensuring device's attached status before performing any ioctls, improving logic consistency between modern and compat functions.  [1] Syzbot report: BUG: kernel NULL pointer dereference, address: 0000000000000000 ... CR2: ffffffffffffffd6 CR3: 000000006c717000 CR4: 0000000000352ef0 Call Trace:  <TASK>  get_valid_routes drivers/comedi/comedi_fops.c:1322 [inline]  parse_insn+0x78c/0x1970 drivers/comedi/comedi_fops.c:1401  do_insnlist_ioctl+0x272/0x700 drivers/comedi/comedi_fops.c:1594  compat_insnlist drivers/comedi/comedi_fops.c:3208 [inline]  comedi_compat_ioctl+0x810/0x990 drivers/comedi/comedi_fops.c:3273  __do_compat_sys_ioctl fs/ioctl.c:695 [inline]  __se_compat_sys_ioctl fs/ioctl.c:638 [inline]  __ia32_compat_sys_ioctl+0x242/0x370 fs/ioctl.c:638  do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline] ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68258",
                        "url": "https://ubuntu.com/security/CVE-2025-68258",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: multiq3: sanitize config options in multiq3_attach()  Syzbot identified an issue [1] in multiq3_attach() that induces a task timeout due to open() or COMEDI_DEVCONFIG ioctl operations, specifically, in the case of multiq3 driver.  This problem arose when syzkaller managed to craft weird configuration options used to specify the number of channels in encoder subdevice. If a particularly great number is passed to s->n_chan in multiq3_attach() via it->options[2], then multiple calls to multiq3_encoder_reset() at the end of driver-specific attach() method will be running for minutes, thus blocking tasks and affected devices as well.  While this issue is most likely not too dangerous for real-life devices, it still makes sense to sanitize configuration inputs. Enable a sensible limit on the number of encoder chips (4 chips max, each with 2 channels) to stop this behaviour from manifesting.  [1] Syzbot crash: INFO: task syz.2.19:6067 blocked for more than 143 seconds. ... Call Trace:  <TASK>  context_switch kernel/sched/core.c:5254 [inline]  __schedule+0x17c4/0x4d60 kernel/sched/core.c:6862  __schedule_loop kernel/sched/core.c:6944 [inline]  schedule+0x165/0x360 kernel/sched/core.c:6959  schedule_preempt_disabled+0x13/0x30 kernel/sched/core.c:7016  __mutex_lock_common kernel/locking/mutex.c:676 [inline]  __mutex_lock+0x7e6/0x1350 kernel/locking/mutex.c:760  comedi_open+0xc0/0x590 drivers/comedi/comedi_fops.c:2868  chrdev_open+0x4cc/0x5e0 fs/char_dev.c:414  do_dentry_open+0x953/0x13f0 fs/open.c:965  vfs_open+0x3b/0x340 fs/open.c:1097 ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68332",
                        "url": "https://ubuntu.com/security/CVE-2025-68332",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: c6xdigio: Fix invalid PNP driver unregistration  The Comedi low-level driver \"c6xdigio\" seems to be for a parallel port connected device.  When the Comedi core calls the driver's Comedi \"attach\" handler `c6xdigio_attach()` to configure a Comedi to use this driver, it tries to enable the parallel port PNP resources by registering a PNP driver with `pnp_register_driver()`, but ignores the return value.  (The `struct pnp_driver` it uses has only the `name` and `id_table` members filled in.)  The driver's Comedi \"detach\" handler `c6xdigio_detach()` unconditionally unregisters the PNP driver with `pnp_unregister_driver()`.  It is possible for `c6xdigio_attach()` to return an error before it calls `pnp_register_driver()` and it is possible for the call to `pnp_register_driver()` to return an error (that is ignored).  In both cases, the driver should not be calling `pnp_unregister_driver()` as it does in `c6xdigio_detach()`.  (Note that `c6xdigio_detach()` will be called by the Comedi core if `c6xdigio_attach()` returns an error, or if the Comedi core decides to detach the Comedi device from the driver for some other reason.)  The unconditional call to `pnp_unregister_driver()` without a previous successful call to `pnp_register_driver()` will cause `driver_unregister()` to issue a warning \"Unexpected driver unregister!\".  This was detected by Syzbot [1].  Also, the PNP driver registration and unregistration should be done at module init and exit time, respectively, not when attaching or detaching Comedi devices to the driver.  (There might be more than one Comedi device being attached to the driver, although that is unlikely.)  Change the driver to do the PNP driver registration at module init time, and the unregistration at module exit time.  Since `c6xdigio_detach()` now only calls `comedi_legacy_detach()`, remove the function and change the Comedi driver \"detach\" handler to `comedi_legacy_detach`.  ------------------------------------------- [1] Syzbot sample crash report: Unexpected driver unregister! WARNING: CPU: 0 PID: 5970 at drivers/base/driver.c:273 driver_unregister drivers/base/driver.c:273 [inline] WARNING: CPU: 0 PID: 5970 at drivers/base/driver.c:273 driver_unregister+0x90/0xb0 drivers/base/driver.c:270 Modules linked in: CPU: 0 UID: 0 PID: 5970 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 RIP: 0010:driver_unregister drivers/base/driver.c:273 [inline] RIP: 0010:driver_unregister+0x90/0xb0 drivers/base/driver.c:270 Code: 48 89 ef e8 c2 e6 82 fc 48 89 df e8 3a 93 ff ff 5b 5d e9 c3 6d d9 fb e8 be 6d d9 fb 90 48 c7 c7 e0 f8 1f 8c e8 51 a2 97 fb 90 <0f> 0b 90 90 5b 5d e9 a5 6d d9 fb e8 e0 f4 41 fc eb 94 e8 d9 f4 41 RSP: 0018:ffffc9000373f9a0 EFLAGS: 00010282 RAX: 0000000000000000 RBX: ffffffff8ff24720 RCX: ffffffff817b6ee8 RDX: ffff88807c932480 RSI: ffffffff817b6ef5 RDI: 0000000000000001 RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000001 R11: 0000000000000001 R12: ffffffff8ff24660 R13: dffffc0000000000 R14: 0000000000000000 R15: ffff88814cca0000 FS:  000055556dab1500(0000) GS:ffff8881249d9000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000055f77f285cd0 CR3: 000000007d871000 CR4: 00000000003526f0 Call Trace:  <TASK>  comedi_device_detach_locked+0x12f/0xa50 drivers/comedi/drivers.c:207  comedi_device_detach+0x67/0xb0 drivers/comedi/drivers.c:215  comedi_device_attach+0x43d/0x900 drivers/comedi/drivers.c:1011  do_devconfig_ioctl+0x1b1/0x710 drivers/comedi/comedi_fops.c:872  comedi_unlocked_ioctl+0x165d/0x2f00 drivers/comedi/comedi_fops.c:2178  vfs_ioctl fs/ioctl.c:51 [inline]  __do_sys_ioctl fs/ioctl.c:597 [inline]  __se_sys_ioctl fs/ioctl.c:583 [inline]  __x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_sys ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68266",
                        "url": "https://ubuntu.com/security/CVE-2025-68266",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bfs: Reconstruct file type when loading from disk  syzbot is reporting that S_IFMT bits of inode->i_mode can become bogus when the S_IFMT bits of the 32bits \"mode\" field loaded from disk are corrupted or when the 32bits \"attributes\" field loaded from disk are corrupted.  A documentation says that BFS uses only lower 9 bits of the \"mode\" field. But I can't find an explicit explanation that the unused upper 23 bits (especially, the S_IFMT bits) are initialized with 0.  Therefore, ignore the S_IFMT bits of the \"mode\" field loaded from disk. Also, verify that the value of the \"attributes\" field loaded from disk is either BFS_VREG or BFS_VDIR (because BFS supports only regular files and the root directory).",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68335",
                        "url": "https://ubuntu.com/security/CVE-2025-68335",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: pcl818: fix null-ptr-deref in pcl818_ai_cancel()  Syzbot identified an issue [1] in pcl818_ai_cancel(), which stems from the fact that in case of early device detach via pcl818_detach(), subdevice dev->read_subdev may not have initialized its pointer to &struct comedi_async as intended. Thus, any such dereferencing of &s->async->cmd will lead to general protection fault and kernel crash.  Mitigate this problem by removing a call to pcl818_ai_cancel() from pcl818_detach() altogether. This way, if the subdevice setups its support for async commands, everything async-related will be handled via subdevice's own ->cancel() function in comedi_device_detach_locked() even before pcl818_detach(). If no support for asynchronous commands is provided, there is no need to cancel anything either.  [1] Syzbot crash: Oops: general protection fault, probably for non-canonical address 0xdffffc0000000005: 0000 [#1] SMP KASAN PTI KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f] CPU: 1 UID: 0 PID: 6050 Comm: syz.0.18 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025 RIP: 0010:pcl818_ai_cancel+0x69/0x3f0 drivers/comedi/drivers/pcl818.c:762 ... Call Trace:  <TASK>  pcl818_detach+0x66/0xd0 drivers/comedi/drivers/pcl818.c:1115  comedi_device_detach_locked+0x178/0x750 drivers/comedi/drivers.c:207  do_devconfig_ioctl drivers/comedi/comedi_fops.c:848 [inline]  comedi_unlocked_ioctl+0xcde/0x1020 drivers/comedi/comedi_fops.c:2178  vfs_ioctl fs/ioctl.c:51 [inline]  __do_sys_ioctl fs/ioctl.c:597 [inline] ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68261",
                        "url": "https://ubuntu.com/security/CVE-2025-68261",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock()  Fix a race between inline data destruction and block mapping.  The function ext4_destroy_inline_data_nolock() changes the inode data layout by clearing EXT4_INODE_INLINE_DATA and setting EXT4_INODE_EXTENTS. At the same time, another thread may execute ext4_map_blocks(), which tests EXT4_INODE_EXTENTS to decide whether to call ext4_ext_map_blocks() or ext4_ind_map_blocks().  Without i_data_sem protection, ext4_ind_map_blocks() may receive inode with EXT4_INODE_EXTENTS flag and triggering assert.  kernel BUG at fs/ext4/indirect.c:546! EXT4-fs (loop2): unmounting filesystem. invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:ext4_ind_map_blocks.cold+0x2b/0x5a fs/ext4/indirect.c:546  Call Trace:  <TASK>  ext4_map_blocks+0xb9b/0x16f0 fs/ext4/inode.c:681  _ext4_get_block+0x242/0x590 fs/ext4/inode.c:822  ext4_block_write_begin+0x48b/0x12c0 fs/ext4/inode.c:1124  ext4_write_begin+0x598/0xef0 fs/ext4/inode.c:1255  ext4_da_write_begin+0x21e/0x9c0 fs/ext4/inode.c:3000  generic_perform_write+0x259/0x5d0 mm/filemap.c:3846  ext4_buffered_write_iter+0x15b/0x470 fs/ext4/file.c:285  ext4_file_write_iter+0x8e0/0x17f0 fs/ext4/file.c:679  call_write_iter include/linux/fs.h:2271 [inline]  do_iter_readv_writev+0x212/0x3c0 fs/read_write.c:735  do_iter_write+0x186/0x710 fs/read_write.c:861  vfs_iter_write+0x70/0xa0 fs/read_write.c:902  iter_file_splice_write+0x73b/0xc90 fs/splice.c:685  do_splice_from fs/splice.c:763 [inline]  direct_splice_actor+0x10f/0x170 fs/splice.c:950  splice_direct_to_actor+0x33a/0xa10 fs/splice.c:896  do_splice_direct+0x1a9/0x280 fs/splice.c:1002  do_sendfile+0xb13/0x12c0 fs/read_write.c:1255  __do_sys_sendfile64 fs/read_write.c:1323 [inline]  __se_sys_sendfile64 fs/read_write.c:1309 [inline]  __x64_sys_sendfile64+0x1cf/0x210 fs/read_write.c:1309  do_syscall_x64 arch/x86/entry/common.c:51 [inline]  do_syscall_64+0x35/0x80 arch/x86/entry/common.c:81  entry_SYSCALL_64_after_hwframe+0x6e/0xd8",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68336",
                        "url": "https://ubuntu.com/security/CVE-2025-68336",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  locking/spinlock/debug: Fix data-race in do_raw_write_lock  KCSAN reports:  BUG: KCSAN: data-race in do_raw_write_lock / do_raw_write_lock  write (marked) to 0xffff800009cf504c of 4 bytes by task 1102 on cpu 1:  do_raw_write_lock+0x120/0x204  _raw_write_lock_irq  do_exit  call_usermodehelper_exec_async  ret_from_fork  read to 0xffff800009cf504c of 4 bytes by task 1103 on cpu 0:  do_raw_write_lock+0x88/0x204  _raw_write_lock_irq  do_exit  call_usermodehelper_exec_async  ret_from_fork  value changed: 0xffffffff -> 0x00000001  Reported by Kernel Concurrency Sanitizer on: CPU: 0 PID: 1103 Comm: kworker/u4:1 6.1.111  Commit 1a365e822372 (\"locking/spinlock/debug: Fix various data races\") has adressed most of these races, but seems to be not consistent/not complete.  >From do_raw_write_lock() only debug_write_lock_after() part has been converted to WRITE_ONCE(), but not debug_write_lock_before() part. Do it now.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68264",
                        "url": "https://ubuntu.com/security/CVE-2025-68264",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: refresh inline data size before write operations  The cached ei->i_inline_size can become stale between the initial size check and when ext4_update_inline_data()/ext4_create_inline_data() use it. Although ext4_get_max_inline_size() reads the correct value at the time of the check, concurrent xattr operations can modify i_inline_size before ext4_write_lock_xattr() is acquired.  This causes ext4_update_inline_data() and ext4_create_inline_data() to work with stale capacity values, leading to a BUG_ON() crash in ext4_write_inline_data():    kernel BUG at fs/ext4/inline.c:1331!   BUG_ON(pos + len > EXT4_I(inode)->i_inline_size);  The race window: 1. ext4_get_max_inline_size() reads i_inline_size = 60 (correct) 2. Size check passes for 50-byte write 3. [Another thread adds xattr, i_inline_size changes to 40] 4. ext4_write_lock_xattr() acquires lock 5. ext4_update_inline_data() uses stale i_inline_size = 60 6. Attempts to write 50 bytes but only 40 bytes actually available 7. BUG_ON() triggers  Fix this by recalculating i_inline_size via ext4_find_inline_data_nolock() immediately after acquiring xattr_sem. This ensures ext4_update_inline_data() and ext4_create_inline_data() work with current values that are protected from concurrent modifications.  This is similar to commit a54c4613dac1 (\"ext4: fix race writing to an inline_data file while its xattrs are changing\") which fixed i_inline_off staleness. This patch addresses the related i_inline_size staleness issue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68337",
                        "url": "https://ubuntu.com/security/CVE-2025-68337",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system corrupted  There's issue when file system corrupted: ------------[ cut here ]------------ kernel BUG at fs/jbd2/transaction.c:1289! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 5 UID: 0 PID: 2031 Comm: mkdir Not tainted 6.18.0-rc1-next RIP: 0010:jbd2_journal_get_create_access+0x3b6/0x4d0 RSP: 0018:ffff888117aafa30 EFLAGS: 00010202 RAX: 0000000000000000 RBX: ffff88811a86b000 RCX: ffffffff89a63534 RDX: 1ffff110200ec602 RSI: 0000000000000004 RDI: ffff888100763010 RBP: ffff888100763000 R08: 0000000000000001 R09: ffff888100763028 R10: 0000000000000003 R11: 0000000000000000 R12: 0000000000000000 R13: ffff88812c432000 R14: ffff88812c608000 R15: ffff888120bfc000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f91d6970c99 CR3: 00000001159c4000 CR4: 00000000000006f0 Call Trace:  <TASK>  __ext4_journal_get_create_access+0x42/0x170  ext4_getblk+0x319/0x6f0  ext4_bread+0x11/0x100  ext4_append+0x1e6/0x4a0  ext4_init_new_dir+0x145/0x1d0  ext4_mkdir+0x326/0x920  vfs_mkdir+0x45c/0x740  do_mkdirat+0x234/0x2f0  __x64_sys_mkdir+0xd6/0x120  do_syscall_64+0x5f/0xfa0  entry_SYSCALL_64_after_hwframe+0x76/0x7e  The above issue occurs with us in errors=continue mode when accompanied by storage failures. There have been many inconsistencies in the file system data. In the case of file system data inconsistency, for example, if the block bitmap of a referenced block is not set, it can lead to the situation where a block being committed is allocated and used again. As a result, the following condition will not be satisfied then trigger BUG_ON. Of course, it is entirely possible to construct a problematic image that can trigger this BUG_ON through specific operations. In fact, I have constructed such an image and easily reproduced this issue. Therefore, J_ASSERT() holds true only under ideal conditions, but it may not necessarily be satisfied in exceptional scenarios. Using J_ASSERT() directly in abnormal situations would cause the system to crash, which is clearly not what we want. So here we directly trigger a JBD abort instead of immediately invoking BUG_ON.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-47666",
                        "url": "https://ubuntu.com/security/CVE-2024-47666",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: pm80xx: Set phy->enable_completion only when we wait for it  pm8001_phy_control() populates the enable_completion pointer with a stack address, sends a PHY_LINK_RESET / PHY_HARD_RESET, waits 300 ms, and returns. The problem arises when a phy control response comes late.  After 300 ms the pm8001_phy_control() function returns and the passed enable_completion stack address is no longer valid. Late phy control response invokes complete() on a dangling enable_completion pointer which leads to a kernel crash.",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-10-09 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68327",
                        "url": "https://ubuntu.com/security/CVE-2025-68327",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: renesas_usbhs: Fix synchronous external abort on unbind  A synchronous external abort occurs on the Renesas RZ/G3S SoC if unbind is executed after the configuration sequence described above:  modprobe usb_f_ecm modprobe libcomposite modprobe configfs cd /sys/kernel/config/usb_gadget mkdir -p g1 cd g1 echo \"0x1d6b\" > idVendor echo \"0x0104\" > idProduct mkdir -p strings/0x409 echo \"0123456789\" > strings/0x409/serialnumber echo \"Renesas.\" > strings/0x409/manufacturer echo \"Ethernet Gadget\" > strings/0x409/product mkdir -p functions/ecm.usb0 mkdir -p configs/c.1 mkdir -p configs/c.1/strings/0x409 echo \"ECM\" > configs/c.1/strings/0x409/configuration  if [ ! -L configs/c.1/ecm.usb0 ]; then         ln -s functions/ecm.usb0 configs/c.1 fi  echo 11e20000.usb > UDC echo 11e20000.usb > /sys/bus/platform/drivers/renesas_usbhs/unbind  The displayed trace is as follows:   Internal error: synchronous external abort: 0000000096000010 [#1] SMP  CPU: 0 UID: 0 PID: 188 Comm: sh Tainted: G M 6.17.0-rc7-next-20250922-00010-g41050493b2bd #55 PREEMPT  Tainted: [M]=MACHINE_CHECK  Hardware name: Renesas SMARC EVK version 2 based on r9a08g045s33 (DT)  pstate: 604000c5 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)  pc : usbhs_sys_function_pullup+0x10/0x40 [renesas_usbhs]  lr : usbhsg_update_pullup+0x3c/0x68 [renesas_usbhs]  sp : ffff8000838b3920  x29: ffff8000838b3920 x28: ffff00000d585780 x27: 0000000000000000  x26: 0000000000000000 x25: 0000000000000000 x24: ffff00000c3e3810  x23: ffff00000d5e5c80 x22: ffff00000d5e5d40 x21: 0000000000000000  x20: 0000000000000000 x19: ffff00000d5e5c80 x18: 0000000000000020  x17: 2e30303230316531 x16: 312d7968703a7968 x15: 3d454d414e5f4344  x14: 000000000000002c x13: 0000000000000000 x12: 0000000000000000  x11: ffff00000f358f38 x10: ffff00000f358db0 x9 : ffff00000b41f418  x8 : 0101010101010101 x7 : 7f7f7f7f7f7f7f7f x6 : fefefeff6364626d  x5 : 8080808000000000 x4 : 000000004b5ccb9d x3 : 0000000000000000  x2 : 0000000000000000 x1 : ffff800083790000 x0 : ffff00000d5e5c80  Call trace:  usbhs_sys_function_pullup+0x10/0x40 [renesas_usbhs] (P)  usbhsg_pullup+0x4c/0x7c [renesas_usbhs]  usb_gadget_disconnect_locked+0x48/0xd4  gadget_unbind_driver+0x44/0x114  device_remove+0x4c/0x80  device_release_driver_internal+0x1c8/0x224  device_release_driver+0x18/0x24  bus_remove_device+0xcc/0x10c  device_del+0x14c/0x404  usb_del_gadget+0x88/0xc0  usb_del_gadget_udc+0x18/0x30  usbhs_mod_gadget_remove+0x24/0x44 [renesas_usbhs]  usbhs_mod_remove+0x20/0x30 [renesas_usbhs]  usbhs_remove+0x98/0xdc [renesas_usbhs]  platform_remove+0x20/0x30  device_remove+0x4c/0x80  device_release_driver_internal+0x1c8/0x224  device_driver_detach+0x18/0x24  unbind_store+0xb4/0xb8  drv_attr_store+0x24/0x38  sysfs_kf_write+0x7c/0x94  kernfs_fop_write_iter+0x128/0x1b8  vfs_write+0x2ac/0x350  ksys_write+0x68/0xfc  __arm64_sys_write+0x1c/0x28  invoke_syscall+0x48/0x110  el0_svc_common.constprop.0+0xc0/0xe0  do_el0_svc+0x1c/0x28  el0_svc+0x34/0xf0  el0t_64_sync_handler+0xa0/0xe4  el0t_64_sync+0x198/0x19c  Code: 7100003f 1a9f07e1 531c6c22 f9400001 (79400021)  ---[ end trace 0000000000000000 ]---  note: sh[188] exited with irqs disabled  note: sh[188] exited with preempt_count 1  The issue occurs because usbhs_sys_function_pullup(), which accesses the IP registers, is executed after the USBHS clocks have been disabled. The problem is reproducible on the Renesas RZ/G3S SoC starting with the addition of module stop in the clock enable/disable APIs. With module stop functionality enabled, a bus error is expected if a master accesses a module whose clock has been stopped and module stop activated.  Disable the IP clocks at the end of remove.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68295",
                        "url": "https://ubuntu.com/security/CVE-2025-68295",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb: client: fix memory leak in cifs_construct_tcon()  When having a multiuser mount with domain= specified and using cifscreds, cifs_set_cifscreds() will end up setting @ctx->domainname, so it needs to be freed before leaving cifs_construct_tcon().  This fixes the following memory leak reported by kmemleak:    mount.cifs //srv/share /mnt -o domain=ZELDA,multiuser,...   su - testuser   cifscreds add -d ZELDA -u testuser   ...   ls /mnt/1   ...   umount /mnt   echo scan > /sys/kernel/debug/kmemleak   cat /sys/kernel/debug/kmemleak   unreferenced object 0xffff8881203c3f08 (size 8):     comm \"ls\", pid 5060, jiffies 4307222943     hex dump (first 8 bytes):       5a 45 4c 44 41 00 cc cc                          ZELDA...     backtrace (crc d109a8cf):       __kmalloc_node_track_caller_noprof+0x572/0x710       kstrdup+0x3a/0x70       cifs_sb_tlink+0x1209/0x1770 [cifs]       cifs_get_fattr+0xe1/0xf50 [cifs]       cifs_get_inode_info+0xb5/0x240 [cifs]       cifs_revalidate_dentry_attr+0x2d1/0x470 [cifs]       cifs_getattr+0x28e/0x450 [cifs]       vfs_getattr_nosec+0x126/0x180       vfs_statx+0xf6/0x220       do_statx+0xab/0x110       __x64_sys_statx+0xd5/0x130       do_syscall_64+0xbb/0x380       entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68227",
                        "url": "https://ubuntu.com/security/CVE-2025-68227",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: Fix proto fallback detection with BPF  The sockmap feature allows bpf syscall from userspace, or based on bpf sockops, replacing the sk_prot of sockets during protocol stack processing with sockmap's custom read/write interfaces. ''' tcp_rcv_state_process()   syn_recv_sock()/subflow_syn_recv_sock()     tcp_init_transfer(BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB)       bpf_skops_established       <== sockops         bpf_sock_map_update(sk)   <== call bpf helper           tcp_bpf_update_proto()  <== update sk_prot '''  When the server has MPTCP enabled but the client sends a TCP SYN without MPTCP, subflow_syn_recv_sock() performs a fallback on the subflow, replacing the subflow sk's sk_prot with the native sk_prot. ''' subflow_syn_recv_sock()   subflow_ulp_fallback()     subflow_drop_ctx()       mptcp_subflow_ops_undo_override() '''  Then, this subflow can be normally used by sockmap, which replaces the native sk_prot with sockmap's custom sk_prot. The issue occurs when the user executes accept::mptcp_stream_accept::mptcp_fallback_tcp_ops(). Here, it uses sk->sk_prot to compare with the native sk_prot, but this is incorrect when sockmap is used, as we may incorrectly set sk->sk_socket->ops.  This fix uses the more generic sk_family for the comparison instead.  Additionally, this also prevents a WARNING from occurring:  result from ./scripts/decode_stacktrace.sh: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 337 at net/mptcp/protocol.c:68 mptcp_stream_accept \\ (net/mptcp/protocol.c:4005) Modules linked in: ...  PKRU: 55555554 Call Trace: <TASK> do_accept (net/socket.c:1989) __sys_accept4 (net/socket.c:2028 net/socket.c:2057) __x64_sys_accept (net/socket.c:2067) x64_sys_call (arch/x86/entry/syscall_64.c:41) do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) RIP: 0033:0x7f87ac92b83d  ---[ end trace 0000000000000000 ]---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68284",
                        "url": "https://ubuntu.com/security/CVE-2025-68284",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: prevent potential out-of-bounds writes in handle_auth_session_key()  The len field originates from untrusted network packets. Boundary checks have been added to prevent potential out-of-bounds writes when decrypting the connection secret or processing service tickets.  [ idryomov: changelog ]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68285",
                        "url": "https://ubuntu.com/security/CVE-2025-68285",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: fix potential use-after-free in have_mon_and_osd_map()  The wait loop in __ceph_open_session() can race with the client receiving a new monmap or osdmap shortly after the initial map is received.  Both ceph_monc_handle_map() and handle_one_map() install a new map immediately after freeing the old one      kfree(monc->monmap);     monc->monmap = monmap;      ceph_osdmap_destroy(osdc->osdmap);     osdc->osdmap = newmap;  under client->monc.mutex and client->osdc.lock respectively, but because neither is taken in have_mon_and_osd_map() it's possible for client->monc.monmap->epoch and client->osdc.osdmap->epoch arms in      client->monc.monmap && client->monc.monmap->epoch &&         client->osdc.osdmap && client->osdc.osdmap->epoch;  condition to dereference an already freed map.  This happens to be reproducible with generic/395 and generic/397 with KASAN enabled:      BUG: KASAN: slab-use-after-free in have_mon_and_osd_map+0x56/0x70     Read of size 4 at addr ffff88811012d810 by task mount.ceph/13305     CPU: 2 UID: 0 PID: 13305 Comm: mount.ceph Not tainted 6.14.0-rc2-build2+ #1266     ...     Call Trace:     <TASK>     have_mon_and_osd_map+0x56/0x70     ceph_open_session+0x182/0x290     ceph_get_tree+0x333/0x680     vfs_get_tree+0x49/0x180     do_new_mount+0x1a3/0x2d0     path_mount+0x6dd/0x730     do_mount+0x99/0xe0     __do_sys_mount+0x141/0x180     do_syscall_64+0x9f/0x100     entry_SYSCALL_64_after_hwframe+0x76/0x7e     </TASK>      Allocated by task 13305:     ceph_osdmap_alloc+0x16/0x130     ceph_osdc_init+0x27a/0x4c0     ceph_create_client+0x153/0x190     create_fs_client+0x50/0x2a0     ceph_get_tree+0xff/0x680     vfs_get_tree+0x49/0x180     do_new_mount+0x1a3/0x2d0     path_mount+0x6dd/0x730     do_mount+0x99/0xe0     __do_sys_mount+0x141/0x180     do_syscall_64+0x9f/0x100     entry_SYSCALL_64_after_hwframe+0x76/0x7e      Freed by task 9475:     kfree+0x212/0x290     handle_one_map+0x23c/0x3b0     ceph_osdc_handle_map+0x3c9/0x590     mon_dispatch+0x655/0x6f0     ceph_con_process_message+0xc3/0xe0     ceph_con_v1_try_read+0x614/0x760     ceph_con_workfn+0x2de/0x650     process_one_work+0x486/0x7c0     process_scheduled_works+0x73/0x90     worker_thread+0x1c8/0x2a0     kthread+0x2ec/0x300     ret_from_fork+0x24/0x40     ret_from_fork_asm+0x1a/0x30  Rewrite the wait loop to check the above condition directly with client->monc.mutex and client->osdc.lock taken as appropriate.  While at it, improve the timeout handling (previously mount_timeout could be exceeded in case wait_event_interruptible_timeout() slept more than once) and access client->auth_err under client->monc.mutex to match how it's set in finish_auth().  monmap_show() and osdmap_show() now take the respective lock before accessing the map as well.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68286",
                        "url": "https://ubuntu.com/security/CVE-2025-68286",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/display: Check NULL before accessing  [WHAT] IGT kms_cursor_legacy's long-nonblocking-modeset-vs-cursor-atomic fails with NULL pointer dereference. This can be reproduced with both an eDP panel and a DP monitors connected.   BUG: kernel NULL pointer dereference, address: 0000000000000000  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page  PGD 0 P4D 0  Oops: Oops: 0000 [#1] SMP NOPTI  CPU: 13 UID: 0 PID: 2960 Comm: kms_cursor_lega Not tainted 6.16.0-99-custom #8 PREEMPT(voluntary)  Hardware name: AMD ........  RIP: 0010:dc_stream_get_scanoutpos+0x34/0x130 [amdgpu]  Code: 57 4d 89 c7 41 56 49 89 ce 41 55 49 89 d5 41 54 49  89 fc 53 48 83 ec 18 48 8b 87 a0 64 00 00 48 89 75 d0 48 c7 c6 e0 41 30  c2 <48> 8b 38 48 8b 9f 68 06 00 00 e8 8d d7 fd ff 31 c0 48 81 c3 e0 02  RSP: 0018:ffffd0f3c2bd7608 EFLAGS: 00010292  RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffd0f3c2bd7668  RDX: ffffd0f3c2bd7664 RSI: ffffffffc23041e0 RDI: ffff8b32494b8000  RBP: ffffd0f3c2bd7648 R08: ffffd0f3c2bd766c R09: ffffd0f3c2bd7760  R10: ffffd0f3c2bd7820 R11: 0000000000000000 R12: ffff8b32494b8000  R13: ffffd0f3c2bd7664 R14: ffffd0f3c2bd7668 R15: ffffd0f3c2bd766c  FS:  000071f631b68700(0000) GS:ffff8b399f114000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000000 CR3: 00000001b8105000 CR4: 0000000000f50ef0  PKRU: 55555554  Call Trace:  <TASK>  dm_crtc_get_scanoutpos+0xd7/0x180 [amdgpu]  amdgpu_display_get_crtc_scanoutpos+0x86/0x1c0 [amdgpu]  ? __pfx_amdgpu_crtc_get_scanout_position+0x10/0x10[amdgpu]  amdgpu_crtc_get_scanout_position+0x27/0x50 [amdgpu]  drm_crtc_vblank_helper_get_vblank_timestamp_internal+0xf7/0x400  drm_crtc_vblank_helper_get_vblank_timestamp+0x1c/0x30  drm_crtc_get_last_vbltimestamp+0x55/0x90  drm_crtc_next_vblank_start+0x45/0xa0  drm_atomic_helper_wait_for_fences+0x81/0x1f0  ...  (cherry picked from commit 621e55f1919640acab25383362b96e65f2baea3c)",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68287",
                        "url": "https://ubuntu.com/security/CVE-2025-68287",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: dwc3: Fix race condition between concurrent dwc3_remove_requests() call paths  This patch addresses a race condition caused by unsynchronized execution of multiple call paths invoking `dwc3_remove_requests()`, leading to premature freeing of USB requests and subsequent crashes.  Three distinct execution paths interact with `dwc3_remove_requests()`: Path 1: Triggered via `dwc3_gadget_reset_interrupt()` during USB reset handling. The call stack includes: - `dwc3_ep0_reset_state()` - `dwc3_ep0_stall_and_restart()` - `dwc3_ep0_out_start()` - `dwc3_remove_requests()` - `dwc3_gadget_del_and_unmap_request()`  Path 2: Also initiated from `dwc3_gadget_reset_interrupt()`, but through `dwc3_stop_active_transfers()`. The call stack includes: - `dwc3_stop_active_transfers()` - `dwc3_remove_requests()` - `dwc3_gadget_del_and_unmap_request()`  Path 3: Occurs independently during `adb root` execution, which triggers USB function unbind and bind operations. The sequence includes: - `gserial_disconnect()` - `usb_ep_disable()` - `dwc3_gadget_ep_disable()` - `dwc3_remove_requests()` with `-ESHUTDOWN` status  Path 3 operates asynchronously and lacks synchronization with Paths 1 and 2. When Path 3 completes, it disables endpoints and frees 'out' requests. If Paths 1 or 2 are still processing these requests, accessing freed memory leads to a crash due to use-after-free conditions.  To fix this added check for request completion and skip processing if already completed and added the request status for ep0 while queue.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68331",
                        "url": "https://ubuntu.com/security/CVE-2025-68331",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: uas: fix urb unmapping issue when the uas device is remove during ongoing data transfer  When a UAS device is unplugged during data transfer, there is a probability of a system panic occurring. The root cause is an access to an invalid memory address during URB callback handling. Specifically, this happens when the dma_direct_unmap_sg() function is called within the usb_hcd_unmap_urb_for_dma() interface, but the sg->dma_address field is 0 and the sg data structure has already been freed.  The SCSI driver sends transfer commands by invoking uas_queuecommand_lck() in uas.c, using the uas_submit_urbs() function to submit requests to USB. Within the uas_submit_urbs() implementation, three URBs (sense_urb, data_urb, and cmd_urb) are sequentially submitted. Device removal may occur at any point during uas_submit_urbs execution, which may result in URB submission failure. However, some URBs might have been successfully submitted before the failure, and uas_submit_urbs will return the -ENODEV error code in this case. The current error handling directly calls scsi_done(). In the SCSI driver, this eventually triggers scsi_complete() to invoke scsi_end_request() for releasing the sgtable. The successfully submitted URBs, when being unlinked to giveback, call usb_hcd_unmap_urb_for_dma() in hcd.c, leading to exceptions during sg unmapping operations since the sg data structure has already been freed.  This patch modifies the error condition check in the uas_submit_urbs() function. When a UAS device is removed but one or more URBs have already been successfully submitted to USB, it avoids immediately invoking scsi_done() and save the cmnd to devinfo->cmnd array. If the successfully submitted URBs is completed before devinfo->resetting being set, then the scsi_done() function will be called within uas_try_complete() after all pending URB operations are finalized. Otherwise, the scsi_done() function will be called within uas_zap_pending(), which is executed after usb_kill_anchored_urbs().  The error handling only takes effect when uas_queuecommand_lck() calls uas_submit_urbs() and returns the error value -ENODEV . In this case, the device is disconnected, and the flow proceeds to uas_disconnect(), where uas_zap_pending() is invoked to call uas_try_complete().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40345",
                        "url": "https://ubuntu.com/security/CVE-2025-40345",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: storage: sddr55: Reject out-of-bound new_pba  Discovered by Atuin - Automated Vulnerability Discovery Engine.  new_pba comes from the status packet returned after each write. A bogus device could report values beyond the block count derived from info->capacity, letting the driver walk off the end of pba_to_lba[] and corrupt heap memory.  Reject PBAs that exceed the computed block count and fail the transfer so we avoid touching out-of-range mapping entries.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-12 18:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68288",
                        "url": "https://ubuntu.com/security/CVE-2025-68288",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: storage: Fix memory leak in USB bulk transport  A kernel memory leak was identified by the 'ioctl_sg01' test from Linux Test Project (LTP). The following bytes were mainly observed: 0x53425355.  When USB storage devices incorrectly skip the data phase with status data, the code extracts/validates the CSW from the sg buffer, but fails to clear it afterwards. This leaves status protocol data in srb's transfer buffer, such as the US_BULK_CS_SIGN 'USBS' signature observed here. Thus, this can lead to USB protocols leaks to user space through SCSI generic (/dev/sg*) interfaces, such as the one seen here when the LTP test requested 512 KiB.  Fix the leak by zeroing the CSW data in srb's transfer buffer immediately after the validation of devices that skip data phase.  Note: Differently from CVE-2018-1000204, which fixed a big leak by zero- ing pages at allocation time, this leak occurs after allocation, when USB protocol data is written to already-allocated sg pages.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68289",
                        "url": "https://ubuntu.com/security/CVE-2025-68289",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: f_eem: Fix memory leak in eem_unwrap  The existing code did not handle the failure case of usb_ep_queue in the command path, potentially leading to memory leaks.  Improve error handling to free all allocated resources on usb_ep_queue failure. This patch continues to use goto logic for error handling, as the existing error handling is complex and not easily adaptable to auto-cleanup helpers.  kmemleak results:   unreferenced object 0xffffff895a512300 (size 240):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       kmem_cache_alloc+0x1b4/0x358       skb_clone+0x90/0xd8       eem_unwrap+0x1cc/0x36c   unreferenced object 0xffffff8a157f4000 (size 256):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       kmalloc_trace+0x48/0x140       dwc3_gadget_ep_alloc_request+0x58/0x11c       usb_ep_alloc_request+0x40/0xe4       eem_unwrap+0x204/0x36c   unreferenced object 0xffffff8aadbaac00 (size 128):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       __kmalloc+0x64/0x1a8       eem_unwrap+0x218/0x36c   unreferenced object 0xffffff89ccef3500 (size 64):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       kmalloc_trace+0x48/0x140       eem_unwrap+0x238/0x36c",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68290",
                        "url": "https://ubuntu.com/security/CVE-2025-68290",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  most: usb: fix double free on late probe failure  The MOST subsystem has a non-standard registration function which frees the interface on registration failures and on deregistration.  This unsurprisingly leads to bugs in the MOST drivers, and a couple of recent changes turned a reference underflow and use-after-free in the USB driver into several double free and a use-after-free on late probe failures.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68328",
                        "url": "https://ubuntu.com/security/CVE-2025-68328",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  firmware: stratix10-svc: fix bug in saving controller data  Fix the incorrect usage of platform_set_drvdata and dev_set_drvdata. They both are of the same data and overrides each other. This resulted in the rmmod of the svc driver to fail and throw a kernel panic for kthread_stop and fifo free.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68339",
                        "url": "https://ubuntu.com/security/CVE-2025-68339",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  atm/fore200e: Fix possible data race in fore200e_open()  Protect access to fore200e->available_cell_rate with rate_mtx lock in the error handling path of fore200e_open() to prevent a data race.  The field fore200e->available_cell_rate is a shared resource used to track available bandwidth. It is concurrently accessed by fore200e_open(), fore200e_close(), and fore200e_change_qos().  In fore200e_open(), the lock rate_mtx is correctly held when subtracting vcc->qos.txtp.max_pcr from available_cell_rate to reserve bandwidth. However, if the subsequent call to fore200e_activate_vcin() fails, the function restores the reserved bandwidth by adding back to available_cell_rate without holding the lock.  This introduces a race condition because available_cell_rate is a global device resource shared across all VCCs. If the error path in fore200e_open() executes concurrently with operations like fore200e_close() or fore200e_change_qos() on other VCCs, a read-modify-write race occurs.  Specifically, the error path reads the rate without the lock. If another CPU acquires the lock and modifies the rate (e.g., releasing bandwidth in fore200e_close()) between this read and the subsequent write, the error path will overwrite the concurrent update with a stale value. This results in incorrect bandwidth accounting.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-23 14:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68330",
                        "url": "https://ubuntu.com/security/CVE-2025-68330",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: accel: bmc150: Fix irq assumption regression  The code in bmc150-accel-core.c unconditionally calls bmc150_accel_set_interrupt() in the iio_buffer_setup_ops, such as on the runtime PM resume path giving a kernel splat like this if the device has no interrupts:  Unable to handle kernel NULL pointer dereference at virtual   address 00000001 when read  PC is at bmc150_accel_set_interrupt+0x98/0x194 LR is at __pm_runtime_resume+0x5c/0x64 (...) Call trace: bmc150_accel_set_interrupt from bmc150_accel_buffer_postenable+0x40/0x108 bmc150_accel_buffer_postenable from __iio_update_buffers+0xbe0/0xcbc __iio_update_buffers from enable_store+0x84/0xc8 enable_store from kernfs_fop_write_iter+0x154/0x1b4  This bug seems to have been in the driver since the beginning, but it only manifests recently, I do not know why.  Store the IRQ number in the state struct, as this is a common pattern in other drivers, then use this to determine if we have IRQ support or not.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-22 17:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68301",
                        "url": "https://ubuntu.com/security/CVE-2025-68301",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: atlantic: fix fragment overflow handling in RX path  The atlantic driver can receive packets with more than MAX_SKB_FRAGS (17) fragments when handling large multi-descriptor packets. This causes an out-of-bounds write in skb_add_rx_frag_netmem() leading to kernel panic.  The issue occurs because the driver doesn't check the total number of fragments before calling skb_add_rx_frag(). When a packet requires more than MAX_SKB_FRAGS fragments, the fragment index exceeds the array bounds.  Fix by assuming there will be an extra frag if buff->len > AQ_CFG_RX_HDR_SIZE, then all fragments are accounted for. And reusing the existing check to prevent the overflow earlier in the code path.  This crash occurred in production with an Aquantia AQC113 10G NIC.  Stack trace from production environment: ``` RIP: 0010:skb_add_rx_frag_netmem+0x29/0xd0 Code: 90 f3 0f 1e fa 0f 1f 44 00 00 48 89 f8 41 89 ca 48 89 d7 48 63 ce 8b 90 c0 00 00 00 48 c1 e1 04 48 01 ca 48 03 90 c8 00 00 00 <48> 89 7a 30 44 89 52 3c 44 89 42 38 40 f6 c7 01 75 74 48 89 fa 83 RSP: 0018:ffffa9bec02a8d50 EFLAGS: 00010287 RAX: ffff925b22e80a00 RBX: ffff925ad38d2700 RCX: fffffffe0a0c8000 RDX: ffff9258ea95bac0 RSI: ffff925ae0a0c800 RDI: 0000000000037a40 RBP: 0000000000000024 R08: 0000000000000000 R09: 0000000000000021 R10: 0000000000000848 R11: 0000000000000000 R12: ffffa9bec02a8e24 R13: ffff925ad8615570 R14: 0000000000000000 R15: ffff925b22e80a00 FS: 0000000000000000(0000) GS:ffff925e47880000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffff9258ea95baf0 CR3: 0000000166022004 CR4: 0000000000f72ef0 PKRU: 55555554 Call Trace: <IRQ> aq_ring_rx_clean+0x175/0xe60 [atlantic] ? aq_ring_rx_clean+0x14d/0xe60 [atlantic] ? aq_ring_tx_clean+0xdf/0x190 [atlantic] ? kmem_cache_free+0x348/0x450 ? aq_vec_poll+0x81/0x1d0 [atlantic] ? __napi_poll+0x28/0x1c0 ? net_rx_action+0x337/0x420 ```  Changes in v4: - Add Fixes: tag to satisfy patch validation requirements.  Changes in v3: - Fix by assuming there will be an extra frag if buff->len > AQ_CFG_RX_HDR_SIZE,   then all fragments are accounted for.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68302",
                        "url": "https://ubuntu.com/security/CVE-2025-68302",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sxgbe: fix potential NULL dereference in sxgbe_rx()  Currently, when skb is null, the driver prints an error and then dereferences skb on the next line.  To fix this, let's add a 'break' after the error message to switch to sxgbe_rx_refill(), which is similar to the approach taken by the other drivers in this particular case, e.g. calxeda with xgmac_rx().  Found during a code review.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68303",
                        "url": "https://ubuntu.com/security/CVE-2025-68303",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: intel: punit_ipc: fix memory corruption  This passes the address of the pointer \"&punit_ipcdev\" when the intent was to pass the pointer itself \"punit_ipcdev\" (without the ampersand). This means that the:  \tcomplete(&ipcdev->cmd_complete);  in intel_punit_ioc() will write to a wrong memory address corrupting it.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68308",
                        "url": "https://ubuntu.com/security/CVE-2025-68308",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: kvaser_usb: leaf: Fix potential infinite loop in command parsers  The `kvaser_usb_leaf_wait_cmd()` and `kvaser_usb_leaf_read_bulk_callback` functions contain logic to zero-length commands. These commands are used to align data to the USB endpoint's wMaxPacketSize boundary.  The driver attempts to skip these placeholders by aligning the buffer position `pos` to the next packet boundary using `round_up()` function.  However, if zero-length command is found exactly on a packet boundary (i.e., `pos` is a multiple of wMaxPacketSize, including 0), `round_up` function will return the unchanged value of `pos`. This prevents `pos` to be increased, causing an infinite loop in the parsing logic.  This patch fixes this in the function by using `pos + 1` instead. This ensures that even if `pos` is on a boundary, the calculation is based on `pos + 1`, forcing `round_up()` to always return the next aligned boundary.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40257",
                        "url": "https://ubuntu.com/security/CVE-2025-40257",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fix a race in mptcp_pm_del_add_timer()  mptcp_pm_del_add_timer() can call sk_stop_timer_sync(sk, &entry->add_timer) while another might have free entry already, as reported by syzbot.  Add RCU protection to fix this issue.  Also change confusing add_timer variable with stop_timer boolean.  syzbot report:  BUG: KASAN: slab-use-after-free in __timer_delete_sync+0x372/0x3f0 kernel/time/timer.c:1616 Read of size 4 at addr ffff8880311e4150 by task kworker/1:1/44  CPU: 1 UID: 0 PID: 44 Comm: kworker/1:1 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 Workqueue: events mptcp_worker Call Trace:  <TASK>   dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120   print_address_description mm/kasan/report.c:378 [inline]   print_report+0xca/0x240 mm/kasan/report.c:482   kasan_report+0x118/0x150 mm/kasan/report.c:595   __timer_delete_sync+0x372/0x3f0 kernel/time/timer.c:1616   sk_stop_timer_sync+0x1b/0x90 net/core/sock.c:3631   mptcp_pm_del_add_timer+0x283/0x310 net/mptcp/pm.c:362   mptcp_incoming_options+0x1357/0x1f60 net/mptcp/options.c:1174   tcp_data_queue+0xca/0x6450 net/ipv4/tcp_input.c:5361   tcp_rcv_established+0x1335/0x2670 net/ipv4/tcp_input.c:6441   tcp_v4_do_rcv+0x98b/0xbf0 net/ipv4/tcp_ipv4.c:1931   tcp_v4_rcv+0x252a/0x2dc0 net/ipv4/tcp_ipv4.c:2374   ip_protocol_deliver_rcu+0x221/0x440 net/ipv4/ip_input.c:205   ip_local_deliver_finish+0x3bb/0x6f0 net/ipv4/ip_input.c:239   NF_HOOK+0x30c/0x3a0 include/linux/netfilter.h:318   NF_HOOK+0x30c/0x3a0 include/linux/netfilter.h:318   __netif_receive_skb_one_core net/core/dev.c:6079 [inline]   __netif_receive_skb+0x143/0x380 net/core/dev.c:6192   process_backlog+0x31e/0x900 net/core/dev.c:6544   __napi_poll+0xb6/0x540 net/core/dev.c:7594   napi_poll net/core/dev.c:7657 [inline]   net_rx_action+0x5f7/0xda0 net/core/dev.c:7784   handle_softirqs+0x22f/0x710 kernel/softirq.c:622   __do_softirq kernel/softirq.c:656 [inline]   __local_bh_enable_ip+0x1a0/0x2e0 kernel/softirq.c:302   mptcp_pm_send_ack net/mptcp/pm.c:210 [inline]  mptcp_pm_addr_send_ack+0x41f/0x500 net/mptcp/pm.c:-1   mptcp_pm_worker+0x174/0x320 net/mptcp/pm.c:1002   mptcp_worker+0xd5/0x1170 net/mptcp/protocol.c:2762   process_one_work kernel/workqueue.c:3263 [inline]   process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3346   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3427   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 44:   kasan_save_stack mm/kasan/common.c:56 [inline]   kasan_save_track+0x3e/0x80 mm/kasan/common.c:77   poison_kmalloc_redzone mm/kasan/common.c:400 [inline]   __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:417   kasan_kmalloc include/linux/kasan.h:262 [inline]   __kmalloc_cache_noprof+0x1ef/0x6c0 mm/slub.c:5748   kmalloc_noprof include/linux/slab.h:957 [inline]   mptcp_pm_alloc_anno_list+0x104/0x460 net/mptcp/pm.c:385   mptcp_pm_create_subflow_or_signal_addr+0xf9d/0x1360 net/mptcp/pm_kernel.c:355   mptcp_pm_nl_fully_established net/mptcp/pm_kernel.c:409 [inline]   __mptcp_pm_kernel_worker+0x417/0x1ef0 net/mptcp/pm_kernel.c:1529   mptcp_pm_worker+0x1ee/0x320 net/mptcp/pm.c:1008   mptcp_worker+0xd5/0x1170 net/mptcp/protocol.c:2762   process_one_work kernel/workqueue.c:3263 [inline]   process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3346   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3427   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  Freed by task 6630:   kasan_save_stack mm/kasan/common.c:56 [inline]   kasan_save_track+0x3e/0x80 mm/kasan/common.c:77   __kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:587   kasan_save_free_info mm/kasan/kasan.h:406 [inline]   poison_slab_object m ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68217",
                        "url": "https://ubuntu.com/security/CVE-2025-68217",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: pegasus-notetaker - fix potential out-of-bounds access  In the pegasus_notetaker driver, the pegasus_probe() function allocates the URB transfer buffer using the wMaxPacketSize value from the endpoint descriptor. An attacker can use a malicious USB descriptor to force the allocation of a very small buffer.  Subsequently, if the device sends an interrupt packet with a specific pattern (e.g., where the first byte is 0x80 or 0x42), the pegasus_parse_packet() function parses the packet without checking the allocated buffer size. This leads to an out-of-bounds memory access.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68204",
                        "url": "https://ubuntu.com/security/CVE-2025-68204",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: arm: scmi: Fix genpd leak on provider registration failure  If of_genpd_add_provider_onecell() fails during probe, the previously created generic power domains are not removed, leading to a memory leak and potential kernel crash later in genpd_debug_add().  Add proper error handling to unwind the initialized domains before returning from probe to ensure all resources are correctly released on failure.  Example crash trace observed without this fix:    | Unable to handle kernel paging request at virtual address fffffffffffffc70   | CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.18.0-rc1 #405 PREEMPT   | Hardware name: ARM LTD ARM Juno Development Platform/ARM Juno Development Platform   | pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)   | pc : genpd_debug_add+0x2c/0x160   | lr : genpd_debug_init+0x74/0x98   | Call trace:   |  genpd_debug_add+0x2c/0x160 (P)   |  genpd_debug_init+0x74/0x98   |  do_one_initcall+0xd0/0x2d8   |  do_initcall_level+0xa0/0x140   |  do_initcalls+0x60/0xa8   |  do_basic_setup+0x28/0x40   |  kernel_init_freeable+0xe8/0x170   |  kernel_init+0x2c/0x140   |  ret_from_fork+0x10/0x20",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68245",
                        "url": "https://ubuntu.com/security/CVE-2025-68245",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: netpoll: fix incorrect refcount handling causing incorrect cleanup  commit efa95b01da18 (\"netpoll: fix use after free\") incorrectly ignored the refcount and prematurely set dev->npinfo to NULL during netpoll cleanup, leading to improper behavior and memory leaks.  Scenario causing lack of proper cleanup:  1) A netpoll is associated with a NIC (e.g., eth0) and netdev->npinfo is    allocated, and refcnt = 1    - Keep in mind that npinfo is shared among all netpoll instances. In      this case, there is just one.  2) Another netpoll is also associated with the same NIC and    npinfo->refcnt += 1.    - Now dev->npinfo->refcnt = 2;    - There is just one npinfo associated to the netdev.  3) When the first netpolls goes to clean up:    - The first cleanup succeeds and clears np->dev->npinfo, ignoring      refcnt.      - It basically calls `RCU_INIT_POINTER(np->dev->npinfo, NULL);`    - Set dev->npinfo = NULL, without proper cleanup    - No ->ndo_netpoll_cleanup() is either called  4) Now the second target tries to clean up    - The second cleanup fails because np->dev->npinfo is already NULL.      * In this case, ops->ndo_netpoll_cleanup() was never called, and        the skb pool is not cleaned as well (for the second netpoll        instance)   - This leaks npinfo and skbpool skbs, which is clearly reported by     kmemleak.  Revert commit efa95b01da18 (\"netpoll: fix use after free\") and adds clarifying comments emphasizing that npinfo cleanup should only happen once the refcount reaches zero, ensuring stable and correct netpoll behavior.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-37354",
                        "url": "https://ubuntu.com/security/CVE-2024-37354",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix crash on racing fsync and size-extending write into prealloc  We have been seeing crashes on duplicate keys in btrfs_set_item_key_safe():    BTRFS critical (device vdb): slot 4 key (450 108 8192) new key (450 108 8192)   ------------[ cut here ]------------   kernel BUG at fs/btrfs/ctree.c:2620!   invalid opcode: 0000 [#1] PREEMPT SMP PTI   CPU: 0 PID: 3139 Comm: xfs_io Kdump: loaded Not tainted 6.9.0 #6   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014   RIP: 0010:btrfs_set_item_key_safe+0x11f/0x290 [btrfs]  With the following stack trace:    #0  btrfs_set_item_key_safe (fs/btrfs/ctree.c:2620:4)   #1  btrfs_drop_extents (fs/btrfs/file.c:411:4)   #2  log_one_extent (fs/btrfs/tree-log.c:4732:9)   #3  btrfs_log_changed_extents (fs/btrfs/tree-log.c:4955:9)   #4  btrfs_log_inode (fs/btrfs/tree-log.c:6626:9)   #5  btrfs_log_inode_parent (fs/btrfs/tree-log.c:7070:8)   #6  btrfs_log_dentry_safe (fs/btrfs/tree-log.c:7171:8)   #7  btrfs_sync_file (fs/btrfs/file.c:1933:8)   #8  vfs_fsync_range (fs/sync.c:188:9)   #9  vfs_fsync (fs/sync.c:202:9)   #10 do_fsync (fs/sync.c:212:9)   #11 __do_sys_fdatasync (fs/sync.c:225:9)   #12 __se_sys_fdatasync (fs/sync.c:223:1)   #13 __x64_sys_fdatasync (fs/sync.c:223:1)   #14 do_syscall_x64 (arch/x86/entry/common.c:52:14)   #15 do_syscall_64 (arch/x86/entry/common.c:83:7)   #16 entry_SYSCALL_64+0xaf/0x14c (arch/x86/entry/entry_64.S:121)  So we're logging a changed extent from fsync, which is splitting an extent in the log tree. But this split part already exists in the tree, triggering the BUG().  This is the state of the log tree at the time of the crash, dumped with drgn (https://github.com/osandov/drgn/blob/main/contrib/btrfs_tree.py) to get more details than btrfs_print_leaf() gives us:    >>> print_extent_buffer(prog.crashed_thread().stack_trace()[0][\"eb\"])   leaf 33439744 level 0 items 72 generation 9 owner 18446744073709551610   leaf 33439744 flags 0x100000000000000   fs uuid e5bd3946-400c-4223-8923-190ef1f18677   chunk uuid d58cb17e-6d02-494a-829a-18b7d8a399da           item 0 key (450 INODE_ITEM 0) itemoff 16123 itemsize 160                   generation 7 transid 9 size 8192 nbytes 8473563889606862198                   block group 0 mode 100600 links 1 uid 0 gid 0 rdev 0                   sequence 204 flags 0x10(PREALLOC)                   atime 1716417703.220000000 (2024-05-22 15:41:43)                   ctime 1716417704.983333333 (2024-05-22 15:41:44)                   mtime 1716417704.983333333 (2024-05-22 15:41:44)                   otime 17592186044416.000000000 (559444-03-08 01:40:16)           item 1 key (450 INODE_REF 256) itemoff 16110 itemsize 13                   index 195 namelen 3 name: 193           item 2 key (450 XATTR_ITEM 1640047104) itemoff 16073 itemsize 37                   location key (0 UNKNOWN.0 0) type XATTR                   transid 7 data_len 1 name_len 6                   name: user.a                   data a           item 3 key (450 EXTENT_DATA 0) itemoff 16020 itemsize 53                   generation 9 type 1 (regular)                   extent data disk byte 303144960 nr 12288                   extent data offset 0 nr 4096 ram 12288                   extent compression 0 (none)           item 4 key (450 EXTENT_DATA 4096) itemoff 15967 itemsize 53                   generation 9 type 2 (prealloc)                   prealloc data disk byte 303144960 nr 12288                   prealloc data offset 4096 nr 8192           item 5 key (450 EXTENT_DATA 8192) itemoff 15914 itemsize 53                   generation 9 type 2 (prealloc)                   prealloc data disk byte 303144960 nr 12288                   prealloc data offset 8192 nr 4096   ...  So the real problem happened earlier: notice that items 4 (4k-12k) and 5 (8k-12k) overlap. Both are prealloc extents. Item 4 straddles i_size and item 5 starts at i_size.  Here is the state of ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2024-06-25 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68220",
                        "url": "https://ubuntu.com/security/CVE-2025-68220",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: ethernet: ti: netcp: Standardize knav_dma_open_channel to return NULL on error  Make knav_dma_open_channel consistently return NULL on error instead of ERR_PTR. Currently the header include/linux/soc/ti/knav_dma.h returns NULL when the driver is disabled, but the driver implementation does not even return NULL or ERR_PTR on failure, causing inconsistency in the users. This results in a crash in netcp_free_navigator_resources as followed (trimmed):  Unhandled fault: alignment exception (0x221) at 0xfffffff2 [fffffff2] *pgd=80000800207003, *pmd=82ffda003, *pte=00000000 Internal error: : 221 [#1] SMP ARM Modules linked in: CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.17.0-rc7 #1 NONE Hardware name: Keystone PC is at knav_dma_close_channel+0x30/0x19c LR is at netcp_free_navigator_resources+0x2c/0x28c  [... TRIM...]  Call trace:  knav_dma_close_channel from netcp_free_navigator_resources+0x2c/0x28c  netcp_free_navigator_resources from netcp_ndo_open+0x430/0x46c  netcp_ndo_open from __dev_open+0x114/0x29c  __dev_open from __dev_change_flags+0x190/0x208  __dev_change_flags from netif_change_flags+0x1c/0x58  netif_change_flags from dev_change_flags+0x38/0xa0  dev_change_flags from ip_auto_config+0x2c4/0x11f0  ip_auto_config from do_one_initcall+0x58/0x200  do_one_initcall from kernel_init_freeable+0x1cc/0x238  kernel_init_freeable from kernel_init+0x1c/0x12c  kernel_init from ret_from_fork+0x14/0x38 [... TRIM...]  Standardize the error handling by making the function return NULL on all error conditions. The API is used in just the netcp_core.c so the impact is limited.  Note, this change, in effect reverts commit 5b6cb43b4d62 (\"net: ethernet: ti: netcp_core: return error while dma channel open issue\"), but provides a less error prone implementation.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40272",
                        "url": "https://ubuntu.com/security/CVE-2025-40272",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/secretmem: fix use-after-free race in fault handler  When a page fault occurs in a secret memory file created with `memfd_secret(2)`, the kernel will allocate a new folio for it, mark the underlying page as not-present in the direct map, and add it to the file mapping.  If two tasks cause a fault in the same page concurrently, both could end up allocating a folio and removing the page from the direct map, but only one would succeed in adding the folio to the file mapping.  The task that failed undoes the effects of its attempt by (a) freeing the folio again and (b) putting the page back into the direct map.  However, by doing these two operations in this order, the page becomes available to the allocator again before it is placed back in the direct mapping.  If another task attempts to allocate the page between (a) and (b), and the kernel tries to access it via the direct map, it would result in a supervisor not-present page fault.  Fix the ordering to restore the direct map before the folio is freed.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40248",
                        "url": "https://ubuntu.com/security/CVE-2025-40248",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock: Ignore signal/timeout on connect() if already established  During connect(), acting on a signal/timeout by disconnecting an already established socket leads to several issues:  1. connect() invoking vsock_transport_cancel_pkt() ->    virtio_transport_purge_skbs() may race with sendmsg() invoking    virtio_transport_get_credit(). This results in a permanently elevated    `vvs->bytes_unsent`. Which, in turn, confuses the SOCK_LINGER handling.  2. connect() resetting a connected socket's state may race with socket    being placed in a sockmap. A disconnected socket remaining in a sockmap    breaks sockmap's assumptions. And gives rise to WARNs.  3. connect() transitioning SS_CONNECTED -> SS_UNCONNECTED allows for a    transport change/drop after TCP_ESTABLISHED. Which poses a problem for    any simultaneous sendmsg() or connect() and may result in a    use-after-free/null-ptr-deref.  Do not disconnect socket on signal/timeout. Keep the logic for unconnected sockets: they don't linger, can't be placed in a sockmap, are rejected by sendmsg().  [1]: https://lore.kernel.org/netdev/e07fd95c-9a38-4eea-9638-133e38c2ec9b@rbox.co/ [2]: https://lore.kernel.org/netdev/20250317-vsock-trans-signal-race-v4-0-fc8837f3f1d4@rbox.co/ [3]: https://lore.kernel.org/netdev/60f1b7db-3099-4f6a-875e-af9f6ef194f6@rbox.co/",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40252",
                        "url": "https://ubuntu.com/security/CVE-2025-40252",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: qlogic/qede: fix potential out-of-bounds read in qede_tpa_cont() and qede_tpa_end()  The loops in 'qede_tpa_cont()' and 'qede_tpa_end()', iterate over 'cqe->len_list[]' using only a zero-length terminator as the stopping condition. If the terminator was missing or malformed, the loop could run past the end of the fixed-size array.  Add an explicit bound check using ARRAY_SIZE() in both loops to prevent a potential out-of-bounds access.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40253",
                        "url": "https://ubuntu.com/security/CVE-2025-40253",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  s390/ctcm: Fix double-kfree  The function 'mpc_rcvd_sweep_req(mpcginfo)' is called conditionally from function 'ctcmpc_unpack_skb'. It frees passed mpcginfo. After that a call to function 'kfree' in function 'ctcmpc_unpack_skb' frees it again.  Remove 'kfree' call in function 'mpc_rcvd_sweep_req(mpcginfo)'.  Bug detected by the clang static analyzer.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40254",
                        "url": "https://ubuntu.com/security/CVE-2025-40254",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: openvswitch: remove never-working support for setting nsh fields  The validation of the set(nsh(...)) action is completely wrong. It runs through the nsh_key_put_from_nlattr() function that is the same function that validates NSH keys for the flow match and the push_nsh() action.  However, the set(nsh(...)) has a very different memory layout.  Nested attributes in there are doubled in size in case of the masked set().  That makes proper validation impossible.  There is also confusion in the code between the 'masked' flag, that says that the nested attributes are doubled in size containing both the value and the mask, and the 'is_mask' that says that the value we're parsing is the mask.  This is causing kernel crash on trying to write into mask part of the match with SW_FLOW_KEY_PUT() during validation, while validate_nsh() doesn't allocate any memory for it:    BUG: kernel NULL pointer dereference, address: 0000000000000018   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 1c2383067 P4D 1c2383067 PUD 20b703067 PMD 0   Oops: Oops: 0000 [#1] SMP NOPTI   CPU: 8 UID: 0 Kdump: loaded Not tainted 6.17.0-rc4+ #107 PREEMPT(voluntary)   RIP: 0010:nsh_key_put_from_nlattr+0x19d/0x610 [openvswitch]   Call Trace:    <TASK>    validate_nsh+0x60/0x90 [openvswitch]    validate_set.constprop.0+0x270/0x3c0 [openvswitch]    __ovs_nla_copy_actions+0x477/0x860 [openvswitch]    ovs_nla_copy_actions+0x8d/0x100 [openvswitch]    ovs_packet_cmd_execute+0x1cc/0x310 [openvswitch]    genl_family_rcv_msg_doit+0xdb/0x130    genl_family_rcv_msg+0x14b/0x220    genl_rcv_msg+0x47/0xa0    netlink_rcv_skb+0x53/0x100    genl_rcv+0x24/0x40    netlink_unicast+0x280/0x3b0    netlink_sendmsg+0x1f7/0x430    ____sys_sendmsg+0x36b/0x3a0    ___sys_sendmsg+0x87/0xd0    __sys_sendmsg+0x6d/0xd0    do_syscall_64+0x7b/0x2c0    entry_SYSCALL_64_after_hwframe+0x76/0x7e  The third issue with this process is that while trying to convert the non-masked set into masked one, validate_set() copies and doubles the size of the OVS_KEY_ATTR_NSH as if it didn't have any nested attributes.  It should be copying each nested attribute and doubling them in size independently.  And the process must be properly reversed during the conversion back from masked to a non-masked variant during the flow dump.  In the end, the only two outcomes of trying to use this action are either validation failure or a kernel crash.  And if somehow someone manages to install a flow with such an action, it will most definitely not do what it is supposed to, since all the keys and the masks are mixed up.  Fixing all the issues is a complex task as it requires re-writing most of the validation code.  Given that and the fact that this functionality never worked since introduction, let's just remove it altogether.  It's better to re-introduce it later with a proper implementation instead of trying to fix it in stable releases.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40258",
                        "url": "https://ubuntu.com/security/CVE-2025-40258",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fix race condition in mptcp_schedule_work()  syzbot reported use-after-free in mptcp_schedule_work() [1]  Issue here is that mptcp_schedule_work() schedules a work, then gets a refcount on sk->sk_refcnt if the work was scheduled. This refcount will be released by mptcp_worker().  [A] if (schedule_work(...)) { [B]     sock_hold(sk);         return true;     }  Problem is that mptcp_worker() can run immediately and complete before [B]  We need instead :      sock_hold(sk);     if (schedule_work(...))         return true;     sock_put(sk);  [1] refcount_t: addition on 0; use-after-free.  WARNING: CPU: 1 PID: 29 at lib/refcount.c:25 refcount_warn_saturate+0xfa/0x1d0 lib/refcount.c:25 Call Trace:  <TASK>  __refcount_add include/linux/refcount.h:-1 [inline]   __refcount_inc include/linux/refcount.h:366 [inline]   refcount_inc include/linux/refcount.h:383 [inline]   sock_hold include/net/sock.h:816 [inline]   mptcp_schedule_work+0x164/0x1a0 net/mptcp/protocol.c:943   mptcp_tout_timer+0x21/0xa0 net/mptcp/protocol.c:2316   call_timer_fn+0x17e/0x5f0 kernel/time/timer.c:1747   expire_timers kernel/time/timer.c:1798 [inline]   __run_timers kernel/time/timer.c:2372 [inline]   __run_timer_base+0x648/0x970 kernel/time/timer.c:2384   run_timer_base kernel/time/timer.c:2393 [inline]   run_timer_softirq+0xb7/0x180 kernel/time/timer.c:2403   handle_softirqs+0x22f/0x710 kernel/softirq.c:622   __do_softirq kernel/softirq.c:656 [inline]   run_ktimerd+0xcf/0x190 kernel/softirq.c:1138   smpboot_thread_fn+0x542/0xa60 kernel/smpboot.c:160   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68229",
                        "url": "https://ubuntu.com/security/CVE-2025-68229",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: tcm_loop: Fix segfault in tcm_loop_tpg_address_show()  If the allocation of tl_hba->sh fails in tcm_loop_driver_probe() and we attempt to dereference it in tcm_loop_tpg_address_show() we will get a segfault, see below for an example. So, check tl_hba->sh before dereferencing it.    Unable to allocate struct scsi_host   BUG: kernel NULL pointer dereference, address: 0000000000000194   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 0 P4D 0   Oops: 0000 [#1] PREEMPT SMP NOPTI   CPU: 1 PID: 8356 Comm: tokio-runtime-w Not tainted 6.6.104.2-4.azl3 #1   Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.1 09/28/2024   RIP: 0010:tcm_loop_tpg_address_show+0x2e/0x50 [tcm_loop] ...   Call Trace:    <TASK>    configfs_read_iter+0x12d/0x1d0 [configfs]    vfs_read+0x1b5/0x300    ksys_read+0x6f/0xf0 ...",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40259",
                        "url": "https://ubuntu.com/security/CVE-2025-40259",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: sg: Do not sleep in atomic context  sg_finish_rem_req() calls blk_rq_unmap_user(). The latter function may sleep. Hence, call sg_finish_rem_req() with interrupts enabled instead of disabled.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40261",
                        "url": "https://ubuntu.com/security/CVE-2025-40261",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()  nvme_fc_delete_assocation() waits for pending I/O to complete before returning, and an error can cause ->ioerr_work to be queued after cancel_work_sync() had been called.  Move the call to cancel_work_sync() to be after nvme_fc_delete_association() to ensure ->ioerr_work is not running when the nvme_fc_ctrl object is freed.  Otherwise the following can occur:  [ 1135.911754] list_del corruption, ff2d24c8093f31f8->next is NULL [ 1135.917705] ------------[ cut here ]------------ [ 1135.922336] kernel BUG at lib/list_debug.c:52! [ 1135.926784] Oops: invalid opcode: 0000 [#1] SMP NOPTI [ 1135.931851] CPU: 48 UID: 0 PID: 726 Comm: kworker/u449:23 Kdump: loaded Not tainted 6.12.0 #1 PREEMPT(voluntary) [ 1135.943490] Hardware name: Dell Inc. PowerEdge R660/0HGTK9, BIOS 2.5.4 01/16/2025 [ 1135.950969] Workqueue:  0x0 (nvme-wq) [ 1135.954673] RIP: 0010:__list_del_entry_valid_or_report.cold+0xf/0x6f [ 1135.961041] Code: c7 c7 98 68 72 94 e8 26 45 fe ff 0f 0b 48 c7 c7 70 68 72 94 e8 18 45 fe ff 0f 0b 48 89 fe 48 c7 c7 80 69 72 94 e8 07 45 fe ff <0f> 0b 48 89 d1 48 c7 c7 a0 6a 72 94 48 89 c2 e8 f3 44 fe ff 0f 0b [ 1135.979788] RSP: 0018:ff579b19482d3e50 EFLAGS: 00010046 [ 1135.985015] RAX: 0000000000000033 RBX: ff2d24c8093f31f0 RCX: 0000000000000000 [ 1135.992148] RDX: 0000000000000000 RSI: ff2d24d6bfa1d0c0 RDI: ff2d24d6bfa1d0c0 [ 1135.999278] RBP: ff2d24c8093f31f8 R08: 0000000000000000 R09: ffffffff951e2b08 [ 1136.006413] R10: ffffffff95122ac8 R11: 0000000000000003 R12: ff2d24c78697c100 [ 1136.013546] R13: fffffffffffffff8 R14: 0000000000000000 R15: ff2d24c78697c0c0 [ 1136.020677] FS:  0000000000000000(0000) GS:ff2d24d6bfa00000(0000) knlGS:0000000000000000 [ 1136.028765] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1136.034510] CR2: 00007fd207f90b80 CR3: 000000163ea22003 CR4: 0000000000f73ef0 [ 1136.041641] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 1136.048776] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400 [ 1136.055910] PKRU: 55555554 [ 1136.058623] Call Trace: [ 1136.061074]  <TASK> [ 1136.063179]  ? show_trace_log_lvl+0x1b0/0x2f0 [ 1136.067540]  ? show_trace_log_lvl+0x1b0/0x2f0 [ 1136.071898]  ? move_linked_works+0x4a/0xa0 [ 1136.075998]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.081744]  ? __die_body.cold+0x8/0x12 [ 1136.085584]  ? die+0x2e/0x50 [ 1136.088469]  ? do_trap+0xca/0x110 [ 1136.091789]  ? do_error_trap+0x65/0x80 [ 1136.095543]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.101289]  ? exc_invalid_op+0x50/0x70 [ 1136.105127]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.110874]  ? asm_exc_invalid_op+0x1a/0x20 [ 1136.115059]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.120806]  move_linked_works+0x4a/0xa0 [ 1136.124733]  worker_thread+0x216/0x3a0 [ 1136.128485]  ? __pfx_worker_thread+0x10/0x10 [ 1136.132758]  kthread+0xfa/0x240 [ 1136.135904]  ? __pfx_kthread+0x10/0x10 [ 1136.139657]  ret_from_fork+0x31/0x50 [ 1136.143236]  ? __pfx_kthread+0x10/0x10 [ 1136.146988]  ret_from_fork_asm+0x1a/0x30 [ 1136.150915]  </TASK>",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40262",
                        "url": "https://ubuntu.com/security/CVE-2025-40262",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: imx_sc_key - fix memory corruption on unload  This is supposed to be \"priv\" but we accidentally pass \"&priv\" which is an address in the stack and so it will lead to memory corruption when the imx_sc_key_action() function is called.  Remove the &.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40263",
                        "url": "https://ubuntu.com/security/CVE-2025-40263",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: cros_ec_keyb - fix an invalid memory access  If cros_ec_keyb_register_matrix() isn't called (due to `buttons_switches_only`) in cros_ec_keyb_probe(), `ckdev->idev` remains NULL.  An invalid memory access is observed in cros_ec_keyb_process() when receiving an EC_MKBP_EVENT_KEY_MATRIX event in cros_ec_keyb_work() in such case.    Unable to handle kernel read from unreadable memory at virtual address 0000000000000028   ...   x3 : 0000000000000000 x2 : 0000000000000000   x1 : 0000000000000000 x0 : 0000000000000000   Call trace:   input_event   cros_ec_keyb_work   blocking_notifier_call_chain   ec_irq_thread  It's still unknown about why the kernel receives such malformed event, in any cases, the kernel shouldn't access `ckdev->idev` and friends if the driver doesn't intend to initialize them.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40264",
                        "url": "https://ubuntu.com/security/CVE-2025-40264",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  be2net: pass wrb_params in case of OS2BMC  be_insert_vlan_in_pkt() is called with the wrb_params argument being NULL at be_send_pkt_to_bmc() call site.  This may lead to dereferencing a NULL pointer when processing a workaround for specific packet, as commit bc0c3405abbb (\"be2net: fix a Tx stall bug caused by a specific ipv6 packet\") states.  The correct way would be to pass the wrb_params from be_xmit().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-04 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68238",
                        "url": "https://ubuntu.com/security/CVE-2025-68238",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mtd: rawnand: cadence: fix DMA device NULL pointer dereference  The DMA device pointer `dma_dev` was being dereferenced before ensuring that `cdns_ctrl->dmac` is properly initialized.  Move the assignment of `dma_dev` after successfully acquiring the DMA channel to ensure the pointer is valid before use.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68734",
                        "url": "https://ubuntu.com/security/CVE-2025-68734",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  isdn: mISDN: hfcsusb: fix memory leak in hfcsusb_probe()  In hfcsusb_probe(), the memory allocated for ctrl_urb gets leaked when setup_instance() fails with an error code. Fix that by freeing the urb before freeing the hw structure. Also change the error paths to use the goto ladder style.  Compile tested only. Issue found using a prototype static analysis tool.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-24 11:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40269",
                        "url": "https://ubuntu.com/security/CVE-2025-40269",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix potential overflow of PCM transfer buffer  The PCM stream data in USB-audio driver is transferred over USB URB packet buffers, and each packet size is determined dynamically.  The packet sizes are limited by some factors such as wMaxPacketSize USB descriptor.  OTOH, in the current code, the actually used packet sizes are determined only by the rate and the PPS, which may be bigger than the size limit above.  This results in a buffer overflow, as reported by syzbot.  Basically when the limit is smaller than the calculated packet size, it implies that something is wrong, most likely a weird USB descriptor.  So the best option would be just to return an error at the parameter setup time before doing any further operations.  This patch introduces such a sanity check, and returns -EINVAL when the packet size is greater than maxpacksize.  The comparison with ep->packsize[1] alone should suffice since it's always equal or greater than ep->packsize[0].",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40271",
                        "url": "https://ubuntu.com/security/CVE-2025-40271",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fs/proc: fix uaf in proc_readdir_de()  Pde is erased from subdir rbtree through rb_erase(), but not set the node to EMPTY, which may result in uaf access.  We should use RB_CLEAR_NODE() set the erased node to EMPTY, then pde_subdir_next() will return NULL to avoid uaf access.  We found an uaf issue while using stress-ng testing, need to run testcase getdent and tun in the same time.  The steps of the issue is as follows:  1) use getdent to traverse dir /proc/pid/net/dev_snmp6/, and current    pde is tun3;  2) in the [time windows] unregister netdevice tun3 and tun2, and erase    them from rbtree.  erase tun3 first, and then erase tun2.  the    pde(tun2) will be released to slab;  3) continue to getdent process, then pde_subdir_next() will return    pde(tun2) which is released, it will case uaf access.  CPU 0                                      |    CPU 1 ------------------------------------------------------------------------- traverse dir /proc/pid/net/dev_snmp6/      |  unregister_netdevice(tun->dev)   //tun3 tun2 sys_getdents64()                           |   iterate_dir()                            |     proc_readdir()                         |       proc_readdir_de()                    |     snmp6_unregister_dev()         pde_get(de);                       |       proc_remove()         read_unlock(&proc_subdir_lock);    |         remove_proc_subtree()                                            |          write_lock(&proc_subdir_lock);         [time window]                      |          rb_erase(&root->subdir_node, &parent->subdir);                                            |          write_unlock(&proc_subdir_lock);         read_lock(&proc_subdir_lock);      |         next = pde_subdir_next(de);        |         pde_put(de);                       |         de = next;    //UAF                |  rbtree of dev_snmp6                         |                     pde(tun3)                      /    \\                   NULL  pde(tun2)",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68241",
                        "url": "https://ubuntu.com/security/CVE-2025-68241",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: route: Prevent rt_bind_exception() from rebinding stale fnhe  The sit driver's packet transmission path calls: sit_tunnel_xmit() -> update_or_create_fnhe(), which lead to fnhe_remove_oldest() being called to delete entries exceeding FNHE_RECLAIM_DEPTH+random.  The race window is between fnhe_remove_oldest() selecting fnheX for deletion and the subsequent kfree_rcu(). During this time, the concurrent path's __mkroute_output() -> find_exception() can fetch the soon-to-be-deleted fnheX, and rt_bind_exception() then binds it with a new dst using a dst_hold(). When the original fnheX is freed via RCU, the dst reference remains permanently leaked.  CPU 0                             CPU 1 __mkroute_output()   find_exception() [fnheX]                                   update_or_create_fnhe()                                     fnhe_remove_oldest() [fnheX]   rt_bind_exception() [bind dst]                                   RCU callback [fnheX freed, dst leak]  This issue manifests as a device reference count leak and a warning in dmesg when unregistering the net device:    unregister_netdevice: waiting for sitX to become free. Usage count = N  Ido Schimmel provided the simple test validation method [1].  The fix clears 'oldest->fnhe_daddr' before calling fnhe_flush_routes(). Since rt_bind_exception() checks this field, setting it to zero prevents the stale fnhe from being reused and bound to a new dst just before it is freed.  [1] ip netns add ns1 ip -n ns1 link set dev lo up ip -n ns1 address add 192.0.2.1/32 dev lo ip -n ns1 link add name dummy1 up type dummy ip -n ns1 route add 192.0.2.2/32 dev dummy1 ip -n ns1 link add name gretap1 up arp off type gretap \\     local 192.0.2.1 remote 192.0.2.2 ip -n ns1 route add 198.51.0.0/16 dev gretap1 taskset -c 0 ip netns exec ns1 mausezahn gretap1 \\     -A 198.51.100.1 -B 198.51.0.0/16 -t udp -p 1000 -c 0 -q & taskset -c 2 ip netns exec ns1 mausezahn gretap1 \\     -A 198.51.100.1 -B 198.51.0.0/16 -t udp -p 1000 -c 0 -q & sleep 10 ip netns pids ns1 | xargs kill ip netns del ns1",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40273",
                        "url": "https://ubuntu.com/security/CVE-2025-40273",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: free copynotify stateid in nfs4_free_ol_stateid()  Typically copynotify stateid is freed either when parent's stateid is being close/freed or in nfsd4_laundromat if the stateid hasn't been used in a lease period.  However, in case when the server got an OPEN (which created a parent stateid), followed by a COPY_NOTIFY using that stateid, followed by a client reboot. New client instance while doing CREATE_SESSION would force expire previous state of this client. It leads to the open state being freed thru release_openowner-> nfs4_free_ol_stateid() and it finds that it still has copynotify stateid associated with it. We currently print a warning and is triggerred  WARNING: CPU: 1 PID: 8858 at fs/nfsd/nfs4state.c:1550 nfs4_free_ol_stateid+0xb0/0x100 [nfsd]  This patch, instead, frees the associated copynotify stateid here.  If the parent stateid is freed (without freeing the copynotify stateids associated with it), it leads to the list corruption when laundromat ends up freeing the copynotify state later.  [ 1626.839430] Internal error: Oops - BUG: 00000000f2000800 [#1]  SMP [ 1626.842828] Modules linked in: nfnetlink_queue nfnetlink_log bluetooth cfg80211 rpcrdma rdma_cm iw_cm ib_cm ib_core nfsd nfs_acl lockd grace nfs_localio ext4 crc16 mbcache jbd2 overlay uinput snd_seq_dummy snd_hrtimer qrtr rfkill vfat fat uvcvideo snd_hda_codec_generic videobuf2_vmalloc videobuf2_memops snd_hda_intel uvc snd_intel_dspcfg videobuf2_v4l2 videobuf2_common snd_hda_codec snd_hda_core videodev snd_hwdep snd_seq mc snd_seq_device snd_pcm snd_timer snd soundcore sg loop auth_rpcgss vsock_loopback vmw_vsock_virtio_transport_common vmw_vsock_vmci_transport vmw_vmci vsock xfs 8021q garp stp llc mrp nvme ghash_ce e1000e nvme_core sr_mod nvme_keyring nvme_auth cdrom vmwgfx drm_ttm_helper ttm sunrpc dm_mirror dm_region_hash dm_log iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi fuse dm_multipath dm_mod nfnetlink [ 1626.855594] CPU: 2 UID: 0 PID: 199 Comm: kworker/u24:33 Kdump: loaded Tainted: G    B   W           6.17.0-rc7+ #22 PREEMPT(voluntary) [ 1626.857075] Tainted: [B]=BAD_PAGE, [W]=WARN [ 1626.857573] Hardware name: VMware, Inc. VMware20,1/VBSA, BIOS VMW201.00V.24006586.BA64.2406042154 06/04/2024 [ 1626.858724] Workqueue: nfsd4 laundromat_main [nfsd] [ 1626.859304] pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) [ 1626.860010] pc : __list_del_entry_valid_or_report+0x148/0x200 [ 1626.860601] lr : __list_del_entry_valid_or_report+0x148/0x200 [ 1626.861182] sp : ffff8000881d7a40 [ 1626.861521] x29: ffff8000881d7a40 x28: 0000000000000018 x27: ffff0000c2a98200 [ 1626.862260] x26: 0000000000000600 x25: 0000000000000000 x24: ffff8000881d7b20 [ 1626.862986] x23: ffff0000c2a981e8 x22: 1fffe00012410e7d x21: ffff0000920873e8 [ 1626.863701] x20: ffff0000920873e8 x19: ffff000086f22998 x18: 0000000000000000 [ 1626.864421] x17: 20747562202c3839 x16: 3932326636383030 x15: 3030666666662065 [ 1626.865092] x14: 6220646c756f6873 x13: 0000000000000001 x12: ffff60004fd9e4a3 [ 1626.865713] x11: 1fffe0004fd9e4a2 x10: ffff60004fd9e4a2 x9 : dfff800000000000 [ 1626.866320] x8 : 00009fffb0261b5e x7 : ffff00027ecf2513 x6 : 0000000000000001 [ 1626.866938] x5 : ffff00027ecf2510 x4 : ffff60004fd9e4a3 x3 : 0000000000000000 [ 1626.867553] x2 : 0000000000000000 x1 : ffff000096069640 x0 : 000000000000006d [ 1626.868167] Call trace: [ 1626.868382]  __list_del_entry_valid_or_report+0x148/0x200 (P) [ 1626.868876]  _free_cpntf_state_locked+0xd0/0x268 [nfsd] [ 1626.869368]  nfs4_laundromat+0x6f8/0x1058 [nfsd] [ 1626.869813]  laundromat_main+0x24/0x60 [nfsd] [ 1626.870231]  process_one_work+0x584/0x1050 [ 1626.870595]  worker_thread+0x4c4/0xc60 [ 1626.870893]  kthread+0x2f8/0x398 [ 1626.871146]  ret_from_fork+0x10/0x20 [ 1626.871422] Code: aa1303e1 aa1403e3 910e8000 97bc55d7 (d4210000) [ 1626.871892] SMP: stopping secondary CPUs",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40040",
                        "url": "https://ubuntu.com/security/CVE-2025-40040",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/ksm: fix flag-dropping behavior in ksm_madvise  syzkaller discovered the following crash: (kernel BUG)  [   44.607039] ------------[ cut here ]------------ [   44.607422] kernel BUG at mm/userfaultfd.c:2067! [   44.608148] Oops: invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN NOPTI [   44.608814] CPU: 1 UID: 0 PID: 2475 Comm: reproducer Not tainted 6.16.0-rc6 #1 PREEMPT(none) [   44.609635] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [   44.610695] RIP: 0010:userfaultfd_release_all+0x3a8/0x460  <snip other registers, drop unreliable trace>  [   44.617726] Call Trace: [   44.617926]  <TASK> [   44.619284]  userfaultfd_release+0xef/0x1b0 [   44.620976]  __fput+0x3f9/0xb60 [   44.621240]  fput_close_sync+0x110/0x210 [   44.622222]  __x64_sys_close+0x8f/0x120 [   44.622530]  do_syscall_64+0x5b/0x2f0 [   44.622840]  entry_SYSCALL_64_after_hwframe+0x76/0x7e [   44.623244] RIP: 0033:0x7f365bb3f227  Kernel panics because it detects UFFD inconsistency during userfaultfd_release_all().  Specifically, a VMA which has a valid pointer to vma->vm_userfaultfd_ctx, but no UFFD flags in vma->vm_flags.  The inconsistency is caused in ksm_madvise(): when user calls madvise() with MADV_UNMEARGEABLE on a VMA that is registered for UFFD in MINOR mode, it accidentally clears all flags stored in the upper 32 bits of vma->vm_flags.  Assuming x86_64 kernel build, unsigned long is 64-bit and unsigned int and int are 32-bit wide.  This setup causes the following mishap during the &= ~VM_MERGEABLE assignment.  VM_MERGEABLE is a 32-bit constant of type unsigned int, 0x8000'0000. After ~ is applied, it becomes 0x7fff'ffff unsigned int, which is then promoted to unsigned long before the & operation.  This promotion fills upper 32 bits with leading 0s, as we're doing unsigned conversion (and even for a signed conversion, this wouldn't help as the leading bit is 0). & operation thus ends up AND-ing vm_flags with 0x0000'0000'7fff'ffff instead of intended 0xffff'ffff'7fff'ffff and hence accidentally clears the upper 32-bits of its value.  Fix it by changing `VM_MERGEABLE` constant to unsigned long, using the BIT() macro.  Note: other VM_* flags are not affected: This only happens to the VM_MERGEABLE flag, as the other VM_* flags are all constants of type int and after ~ operation, they end up with leading 1 and are thus converted to unsigned long with leading 1s.  Note 2: After commit 31defc3b01d9 (\"userfaultfd: remove (VM_)BUG_ON()s\"), this is no longer a kernel BUG, but a WARNING at the same place:  [   45.595973] WARNING: CPU: 1 PID: 2474 at mm/userfaultfd.c:2067  but the root-cause (flag-drop) remains the same.  [akpm@linux-foundation.org: rust bindgen wasn't able to handle BIT(), from Miguel]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-28 12:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68200",
                        "url": "https://ubuntu.com/security/CVE-2025-68200",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Add bpf_prog_run_data_pointers()  syzbot found that cls_bpf_classify() is able to change tc_skb_cb(skb)->drop_reason triggering a warning in sk_skb_reason_drop().  WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 __sk_skb_reason_drop net/core/skbuff.c:1189 [inline] WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 sk_skb_reason_drop+0x76/0x170 net/core/skbuff.c:1214  struct tc_skb_cb has been added in commit ec624fe740b4 (\"net/sched: Extend qdisc control block with tc control block\"), which added a wrong interaction with db58ba459202 (\"bpf: wire in data and data_end for cls_act_bpf\").  drop_reason was added later.  Add bpf_prog_run_data_pointers() helper to save/restore the net_sched storage colliding with BPF data_meta/data_end.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40275",
                        "url": "https://ubuntu.com/security/CVE-2025-40275",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix NULL pointer dereference in snd_usb_mixer_controls_badd  In snd_usb_create_streams(), for UAC version 3 devices, the Interface Association Descriptor (IAD) is retrieved via usb_ifnum_to_if(). If this call fails, a fallback routine attempts to obtain the IAD from the next interface and sets a BADD profile. However, snd_usb_mixer_controls_badd() assumes that the IAD retrieved from usb_ifnum_to_if() is always valid, without performing a NULL check. This can lead to a NULL pointer dereference when usb_ifnum_to_if() fails to find the interface descriptor.  This patch adds a NULL pointer check after calling usb_ifnum_to_if() in snd_usb_mixer_controls_badd() to prevent the dereference.  This issue was discovered by syzkaller, which triggered the bug by sending a crafted USB device descriptor.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40277",
                        "url": "https://ubuntu.com/security/CVE-2025-40277",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vmwgfx: Validate command header size against SVGA_CMD_MAX_DATASIZE  This data originates from userspace and is used in buffer offset calculations which could potentially overflow causing an out-of-bounds access.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40278",
                        "url": "https://ubuntu.com/security/CVE-2025-40278",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak  Fix a KMSAN kernel-infoleak detected  by the syzbot .  [net?] KMSAN: kernel-infoleak in __skb_datagram_iter  In tcf_ife_dump(), the variable 'opt' was partially initialized using a designatied initializer. While the padding bytes are reamined uninitialized. nla_put() copies the entire structure into a netlink message, these uninitialized bytes leaked to userspace.  Initialize the structure with memset before assigning its fields to ensure all members and padding are cleared prior to beign copied.  This change silences the KMSAN report and prevents potential information leaks from the kernel memory.  This fix has been tested and validated by syzbot. This patch closes the bug reported at the following syzkaller link and ensures no infoleak.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40279",
                        "url": "https://ubuntu.com/security/CVE-2025-40279",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: act_connmark: initialize struct tc_ife to fix kernel leak  In tcf_connmark_dump(), the variable 'opt' was partially initialized using a designatied initializer. While the padding bytes are reamined uninitialized. nla_put() copies the entire structure into a netlink message, these uninitialized bytes leaked to userspace.  Initialize the structure with memset before assigning its fields to ensure all members and padding are cleared prior to beign copied.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40280",
                        "url": "https://ubuntu.com/security/CVE-2025-40280",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tipc: Fix use-after-free in tipc_mon_reinit_self().  syzbot reported use-after-free of tipc_net(net)->monitors[] in tipc_mon_reinit_self(). [0]  The array is protected by RTNL, but tipc_mon_reinit_self() iterates over it without RTNL.  tipc_mon_reinit_self() is called from tipc_net_finalize(), which is always under RTNL except for tipc_net_finalize_work().  Let's hold RTNL in tipc_net_finalize_work().  [0]: BUG: KASAN: slab-use-after-free in __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] BUG: KASAN: slab-use-after-free in _raw_spin_lock_irqsave+0xa7/0xf0 kernel/locking/spinlock.c:162 Read of size 1 at addr ffff88805eae1030 by task kworker/0:7/5989  CPU: 0 UID: 0 PID: 5989 Comm: kworker/0:7 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025 Workqueue: events tipc_net_finalize_work Call Trace:  <TASK>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0xca/0x240 mm/kasan/report.c:482  kasan_report+0x118/0x150 mm/kasan/report.c:595  __kasan_check_byte+0x2a/0x40 mm/kasan/common.c:568  kasan_check_byte include/linux/kasan.h:399 [inline]  lock_acquire+0x8d/0x360 kernel/locking/lockdep.c:5842  __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]  _raw_spin_lock_irqsave+0xa7/0xf0 kernel/locking/spinlock.c:162  rtlock_slowlock kernel/locking/rtmutex.c:1894 [inline]  rwbase_rtmutex_lock_state kernel/locking/spinlock_rt.c:160 [inline]  rwbase_write_lock+0xd3/0x7e0 kernel/locking/rwbase_rt.c:244  rt_write_lock+0x76/0x110 kernel/locking/spinlock_rt.c:243  write_lock_bh include/linux/rwlock_rt.h:99 [inline]  tipc_mon_reinit_self+0x79/0x430 net/tipc/monitor.c:718  tipc_net_finalize+0x115/0x190 net/tipc/net.c:140  process_one_work kernel/workqueue.c:3236 [inline]  process_scheduled_works+0xade/0x17b0 kernel/workqueue.c:3319  worker_thread+0x8a0/0xda0 kernel/workqueue.c:3400  kthread+0x70e/0x8a0 kernel/kthread.c:463  ret_from_fork+0x439/0x7d0 arch/x86/kernel/process.c:148  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 6089:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x3e/0x80 mm/kasan/common.c:68  poison_kmalloc_redzone mm/kasan/common.c:388 [inline]  __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:405  kasan_kmalloc include/linux/kasan.h:260 [inline]  __kmalloc_cache_noprof+0x1a8/0x320 mm/slub.c:4407  kmalloc_noprof include/linux/slab.h:905 [inline]  kzalloc_noprof include/linux/slab.h:1039 [inline]  tipc_mon_create+0xc3/0x4d0 net/tipc/monitor.c:657  tipc_enable_bearer net/tipc/bearer.c:357 [inline]  __tipc_nl_bearer_enable+0xe16/0x13f0 net/tipc/bearer.c:1047  __tipc_nl_compat_doit net/tipc/netlink_compat.c:371 [inline]  tipc_nl_compat_doit+0x3bc/0x5f0 net/tipc/netlink_compat.c:393  tipc_nl_compat_handle net/tipc/netlink_compat.c:-1 [inline]  tipc_nl_compat_recv+0x83c/0xbe0 net/tipc/netlink_compat.c:1321  genl_family_rcv_msg_doit+0x215/0x300 net/netlink/genetlink.c:1115  genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]  genl_rcv_msg+0x60e/0x790 net/netlink/genetlink.c:1210  netlink_rcv_skb+0x208/0x470 net/netlink/af_netlink.c:2552  genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219  netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]  netlink_unicast+0x846/0xa10 net/netlink/af_netlink.c:1346  netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1896  sock_sendmsg_nosec net/socket.c:714 [inline]  __sock_sendmsg+0x21c/0x270 net/socket.c:729  ____sys_sendmsg+0x508/0x820 net/socket.c:2614  ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2668  __sys_sendmsg net/socket.c:2700 [inline]  __do_sys_sendmsg net/socket.c:2705 [inline]  __se_sys_sendmsg net/socket.c:2703 [inline]  __x64_sys_sendmsg+0x1a1/0x260 net/socket.c:2703  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0x3b0 arch/ ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40281",
                        "url": "https://ubuntu.com/security/CVE-2025-40281",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: prevent possible shift-out-of-bounds in sctp_transport_update_rto  syzbot reported a possible shift-out-of-bounds [1]  Blamed commit added rto_alpha_max and rto_beta_max set to 1000.  It is unclear if some sctp users are setting very large rto_alpha and/or rto_beta.  In order to prevent user regression, perform the test at run time.  Also add READ_ONCE() annotations as sysctl values can change under us.  [1]  UBSAN: shift-out-of-bounds in net/sctp/transport.c:509:41 shift exponent 64 is too large for 32-bit type 'unsigned int' CPU: 0 UID: 0 PID: 16704 Comm: syz.2.2320 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 Call Trace:  <TASK>   __dump_stack lib/dump_stack.c:94 [inline]   dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120   ubsan_epilogue lib/ubsan.c:233 [inline]   __ubsan_handle_shift_out_of_bounds+0x27f/0x420 lib/ubsan.c:494   sctp_transport_update_rto.cold+0x1c/0x34b net/sctp/transport.c:509   sctp_check_transmitted+0x11c4/0x1c30 net/sctp/outqueue.c:1502   sctp_outq_sack+0x4ef/0x1b20 net/sctp/outqueue.c:1338   sctp_cmd_process_sack net/sctp/sm_sideeffect.c:840 [inline]   sctp_cmd_interpreter net/sctp/sm_sideeffect.c:1372 [inline]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40282",
                        "url": "https://ubuntu.com/security/CVE-2025-40282",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: 6lowpan: reset link-local header on ipv6 recv path  Bluetooth 6lowpan.c netdev has header_ops, so it must set link-local header for RX skb, otherwise things crash, eg. with AF_PACKET SOCK_RAW  Add missing skb_reset_mac_header() for uncompressed ipv6 RX path.  For the compressed one, it is done in lowpan_header_decompress().  Log: (BlueZ 6lowpan-tester Client Recv Raw - Success) ------ kernel BUG at net/core/skbuff.c:212! Call Trace: <IRQ> ... packet_rcv (net/packet/af_packet.c:2152) ... <TASK> __local_bh_enable_ip (kernel/softirq.c:407) netif_rx (net/core/dev.c:5648) chan_recv_cb (net/bluetooth/6lowpan.c:294 net/bluetooth/6lowpan.c:359) ------",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40283",
                        "url": "https://ubuntu.com/security/CVE-2025-40283",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: btusb: reorder cleanup in btusb_disconnect to avoid UAF  There is a KASAN: slab-use-after-free read in btusb_disconnect(). Calling \"usb_driver_release_interface(&btusb_driver, data->intf)\" will free the btusb data associated with the interface. The same data is then used later in the function, hence the UAF.  Fix by moving the accesses to btusb data to before the data is free'd.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-06 22:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68244",
                        "url": "https://ubuntu.com/security/CVE-2025-68244",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915: Avoid lock inversion when pinning to GGTT on CHV/BXT+VTD  On completion of i915_vma_pin_ww(), a synchronous variant of dma_fence_work_commit() is called.  When pinning a VMA to GGTT address space on a Cherry View family processor, or on a Broxton generation SoC with VTD enabled, i.e., when stop_machine() is then called from intel_ggtt_bind_vma(), that can potentially lead to lock inversion among reservation_ww and cpu_hotplug locks.  [86.861179] ====================================================== [86.861193] WARNING: possible circular locking dependency detected [86.861209] 6.15.0-rc5-CI_DRM_16515-gca0305cadc2d+ #1 Tainted: G     U [86.861226] ------------------------------------------------------ [86.861238] i915_module_loa/1432 is trying to acquire lock: [86.861252] ffffffff83489090 (cpu_hotplug_lock){++++}-{0:0}, at: stop_machine+0x1c/0x50 [86.861290] but task is already holding lock: [86.861303] ffffc90002e0b4c8 (reservation_ww_class_mutex){+.+.}-{3:3}, at: i915_vma_pin.constprop.0+0x39/0x1d0 [i915] [86.862233] which lock already depends on the new lock. [86.862251] the existing dependency chain (in reverse order) is: [86.862265] -> #5 (reservation_ww_class_mutex){+.+.}-{3:3}: [86.862292]        dma_resv_lockdep+0x19a/0x390 [86.862315]        do_one_initcall+0x60/0x3f0 [86.862334]        kernel_init_freeable+0x3cd/0x680 [86.862353]        kernel_init+0x1b/0x200 [86.862369]        ret_from_fork+0x47/0x70 [86.862383]        ret_from_fork_asm+0x1a/0x30 [86.862399] -> #4 (reservation_ww_class_acquire){+.+.}-{0:0}: [86.862425]        dma_resv_lockdep+0x178/0x390 [86.862440]        do_one_initcall+0x60/0x3f0 [86.862454]        kernel_init_freeable+0x3cd/0x680 [86.862470]        kernel_init+0x1b/0x200 [86.862482]        ret_from_fork+0x47/0x70 [86.862495]        ret_from_fork_asm+0x1a/0x30 [86.862509] -> #3 (&mm->mmap_lock){++++}-{3:3}: [86.862531]        down_read_killable+0x46/0x1e0 [86.862546]        lock_mm_and_find_vma+0xa2/0x280 [86.862561]        do_user_addr_fault+0x266/0x8e0 [86.862578]        exc_page_fault+0x8a/0x2f0 [86.862593]        asm_exc_page_fault+0x27/0x30 [86.862607]        filldir64+0xeb/0x180 [86.862620]        kernfs_fop_readdir+0x118/0x480 [86.862635]        iterate_dir+0xcf/0x2b0 [86.862648]        __x64_sys_getdents64+0x84/0x140 [86.862661]        x64_sys_call+0x1058/0x2660 [86.862675]        do_syscall_64+0x91/0xe90 [86.862689]        entry_SYSCALL_64_after_hwframe+0x76/0x7e [86.862703] -> #2 (&root->kernfs_rwsem){++++}-{3:3}: [86.862725]        down_write+0x3e/0xf0 [86.862738]        kernfs_add_one+0x30/0x3c0 [86.862751]        kernfs_create_dir_ns+0x53/0xb0 [86.862765]        internal_create_group+0x134/0x4c0 [86.862779]        sysfs_create_group+0x13/0x20 [86.862792]        topology_add_dev+0x1d/0x30 [86.862806]        cpuhp_invoke_callback+0x4b5/0x850 [86.862822]        cpuhp_issue_call+0xbf/0x1f0 [86.862836]        __cpuhp_setup_state_cpuslocked+0x111/0x320 [86.862852]        __cpuhp_setup_state+0xb0/0x220 [86.862866]        topology_sysfs_init+0x30/0x50 [86.862879]        do_one_initcall+0x60/0x3f0 [86.862893]        kernel_init_freeable+0x3cd/0x680 [86.862908]        kernel_init+0x1b/0x200 [86.862921]        ret_from_fork+0x47/0x70 [86.862934]        ret_from_fork_asm+0x1a/0x30 [86.862947] -> #1 (cpuhp_state_mutex){+.+.}-{3:3}: [86.862969]        __mutex_lock+0xaa/0xed0 [86.862982]        mutex_lock_nested+0x1b/0x30 [86.862995]        __cpuhp_setup_state_cpuslocked+0x67/0x320 [86.863012]        __cpuhp_setup_state+0xb0/0x220 [86.863026]        page_alloc_init_cpuhp+0x2d/0x60 [86.863041]        mm_core_init+0x22/0x2d0 [86.863054]        start_kernel+0x576/0xbd0 [86.863068]        x86_64_start_reservations+0x18/0x30 [86.863084]        x86_64_start_kernel+0xbf/0x110 [86.863098]        common_startup_64+0x13e/0x141 [86.863114] -> #0 (cpu_hotplug_lock){++++}-{0:0}: [86.863135]        __lock_acquire+0x16 ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 15:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68192",
                        "url": "https://ubuntu.com/security/CVE-2025-68192",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: qmi_wwan: initialize MAC header offset in qmimux_rx_fixup  Raw IP packets have no MAC header, leaving skb->mac_header uninitialized. This can trigger kernel panics on ARM64 when xfrm or other subsystems access the offset due to strict alignment checks.  Initialize the MAC header to prevent such crashes.  This can trigger kernel panics on ARM when running IPsec over the qmimux0 interface.  Example trace:      Internal error: Oops: 000000009600004f [#1] SMP     CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.12.34-gbe78e49cb433 #1     Hardware name: LS1028A RDB Board (DT)     pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)     pc : xfrm_input+0xde8/0x1318     lr : xfrm_input+0x61c/0x1318     sp : ffff800080003b20     Call trace:      xfrm_input+0xde8/0x1318      xfrm6_rcv+0x38/0x44      xfrm6_esp_rcv+0x48/0xa8      ip6_protocol_deliver_rcu+0x94/0x4b0      ip6_input_finish+0x44/0x70      ip6_input+0x44/0xc0      ipv6_rcv+0x6c/0x114      __netif_receive_skb_one_core+0x5c/0x8c      __netif_receive_skb+0x18/0x60      process_backlog+0x78/0x17c      __napi_poll+0x38/0x180      net_rx_action+0x168/0x2f0",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40331",
                        "url": "https://ubuntu.com/security/CVE-2025-40331",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: Prevent TOCTOU out-of-bounds write  For the following path not holding the sock lock,    sctp_diag_dump() -> sctp_for_each_endpoint() -> sctp_ep_dump()  make sure not to exceed bounds in case the address list has grown between buffer allocation (time-of-check) and write (time-of-use).",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-09 16:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40304",
                        "url": "https://ubuntu.com/security/CVE-2025-40304",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fbdev: Add bounds checking in bit_putcs to fix vmalloc-out-of-bounds  Add bounds checking to prevent writes past framebuffer boundaries when rendering text near screen edges. Return early if the Y position is off-screen and clip image height to screen boundary. Break from the rendering loop if the X position is off-screen. When clipping image width to fit the screen, update the character count to match the clipped width to prevent buffer size mismatches.  Without the character count update, bit_putcs_aligned and bit_putcs_unaligned receive mismatched parameters where the buffer is allocated for the clipped width but cnt reflects the original larger count, causing out-of-bounds writes.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40306",
                        "url": "https://ubuntu.com/security/CVE-2025-40306",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  orangefs: fix xattr related buffer overflow...  Willy Tarreau <w@1wt.eu> forwarded me a message from Disclosure <disclosure@aisle.com> with the following warning:  > The helper `xattr_key()` uses the pointer variable in the loop condition > rather than dereferencing it. As `key` is incremented, it remains non-NULL > (until it runs into unmapped memory), so the loop does not terminate on > valid C strings and will walk memory indefinitely, consuming CPU or hanging > the thread.  I easily reproduced this with setfattr and getfattr, causing a kernel oops, hung user processes and corrupted orangefs files. Disclosure sent along a diff (not a patch) with a suggested fix, which I based this patch on.  After xattr_key started working right, xfstest generic/069 exposed an xattr related memory leak that lead to OOM. xattr_key returns a hashed key.  When adding xattrs to the orangefs xattr cache, orangefs used hash_add, a kernel hashing macro. hash_add also hashes the key using hash_log which resulted in additions to the xattr cache going to the wrong hash bucket. generic/069 tortures a single file and orangefs does a getattr for the xattr \"security.capability\" every time. Orangefs negative caches on xattrs which includes a kmalloc. Since adds to the xattr cache were going to the wrong bucket, every getattr for \"security.capability\" resulted in another kmalloc, none of which were ever freed.  I changed the two uses of hash_add to hlist_add_head instead and the memory leak ceased and generic/069 quit throwing furniture.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40308",
                        "url": "https://ubuntu.com/security/CVE-2025-40308",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: bcsp: receive data only if registered  Currently, bcsp_recv() can be called even when the BCSP protocol has not been registered. This leads to a NULL pointer dereference, as shown in the following stack trace:      KASAN: null-ptr-deref in range [0x0000000000000108-0x000000000000010f]     RIP: 0010:bcsp_recv+0x13d/0x1740 drivers/bluetooth/hci_bcsp.c:590     Call Trace:      <TASK>      hci_uart_tty_receive+0x194/0x220 drivers/bluetooth/hci_ldisc.c:627      tiocsti+0x23c/0x2c0 drivers/tty/tty_io.c:2290      tty_ioctl+0x626/0xde0 drivers/tty/tty_io.c:2706      vfs_ioctl fs/ioctl.c:51 [inline]      __do_sys_ioctl fs/ioctl.c:907 [inline]      __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:893      do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]      do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94      entry_SYSCALL_64_after_hwframe+0x77/0x7f  To prevent this, ensure that the HCI_UART_REGISTERED flag is set before processing received data. If the protocol is not registered, return -EUNATCH.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40309",
                        "url": "https://ubuntu.com/security/CVE-2025-40309",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: SCO: Fix UAF on sco_conn_free  BUG: KASAN: slab-use-after-free in sco_conn_free net/bluetooth/sco.c:87 [inline] BUG: KASAN: slab-use-after-free in kref_put include/linux/kref.h:65 [inline] BUG: KASAN: slab-use-after-free in sco_conn_put+0xdd/0x410 net/bluetooth/sco.c:107 Write of size 8 at addr ffff88811cb96b50 by task kworker/u17:4/352  CPU: 1 UID: 0 PID: 352 Comm: kworker/u17:4 Not tainted 6.17.0-rc5-g717368f83676 #4 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 Workqueue: hci13 hci_cmd_sync_work Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x10b/0x170 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0x191/0x550 mm/kasan/report.c:482  kasan_report+0xc4/0x100 mm/kasan/report.c:595  sco_conn_free net/bluetooth/sco.c:87 [inline]  kref_put include/linux/kref.h:65 [inline]  sco_conn_put+0xdd/0x410 net/bluetooth/sco.c:107  sco_connect_cfm+0xb4/0xae0 net/bluetooth/sco.c:1441  hci_connect_cfm include/net/bluetooth/hci_core.h:2082 [inline]  hci_conn_failed+0x20a/0x2e0 net/bluetooth/hci_conn.c:1313  hci_conn_unlink+0x55f/0x810 net/bluetooth/hci_conn.c:1121  hci_conn_del+0xb6/0x1110 net/bluetooth/hci_conn.c:1147  hci_abort_conn_sync+0x8c5/0xbb0 net/bluetooth/hci_sync.c:5689  hci_cmd_sync_work+0x281/0x380 net/bluetooth/hci_sync.c:332  process_one_work kernel/workqueue.c:3236 [inline]  process_scheduled_works+0x77e/0x1040 kernel/workqueue.c:3319  worker_thread+0xbee/0x1200 kernel/workqueue.c:3400  kthread+0x3c7/0x870 kernel/kthread.c:463  ret_from_fork+0x13a/0x1e0 arch/x86/kernel/process.c:148  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 31370:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x30/0x70 mm/kasan/common.c:68  poison_kmalloc_redzone mm/kasan/common.c:388 [inline]  __kasan_kmalloc+0x82/0x90 mm/kasan/common.c:405  kasan_kmalloc include/linux/kasan.h:260 [inline]  __do_kmalloc_node mm/slub.c:4382 [inline]  __kmalloc_noprof+0x22f/0x390 mm/slub.c:4394  kmalloc_noprof include/linux/slab.h:909 [inline]  sk_prot_alloc+0xae/0x220 net/core/sock.c:2239  sk_alloc+0x34/0x5a0 net/core/sock.c:2295  bt_sock_alloc+0x3c/0x330 net/bluetooth/af_bluetooth.c:151  sco_sock_alloc net/bluetooth/sco.c:562 [inline]  sco_sock_create+0xc0/0x350 net/bluetooth/sco.c:593  bt_sock_create+0x161/0x3b0 net/bluetooth/af_bluetooth.c:135  __sock_create+0x3ad/0x780 net/socket.c:1589  sock_create net/socket.c:1647 [inline]  __sys_socket_create net/socket.c:1684 [inline]  __sys_socket+0xd5/0x330 net/socket.c:1731  __do_sys_socket net/socket.c:1745 [inline]  __se_sys_socket net/socket.c:1743 [inline]  __x64_sys_socket+0x7a/0x90 net/socket.c:1743  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xc7/0x240 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 31374:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x30/0x70 mm/kasan/common.c:68  kasan_save_free_info+0x40/0x50 mm/kasan/generic.c:576  poison_slab_object mm/kasan/common.c:243 [inline]  __kasan_slab_free+0x3d/0x50 mm/kasan/common.c:275  kasan_slab_free include/linux/kasan.h:233 [inline]  slab_free_hook mm/slub.c:2428 [inline]  slab_free mm/slub.c:4701 [inline]  kfree+0x199/0x3b0 mm/slub.c:4900  sk_prot_free net/core/sock.c:2278 [inline]  __sk_destruct+0x4aa/0x630 net/core/sock.c:2373  sco_sock_release+0x2ad/0x300 net/bluetooth/sco.c:1333  __sock_release net/socket.c:649 [inline]  sock_close+0xb8/0x230 net/socket.c:1439  __fput+0x3d1/0x9e0 fs/file_table.c:468  task_work_run+0x206/0x2a0 kernel/task_work.c:227  get_signal+0x1201/0x1410 kernel/signal.c:2807  arch_do_signal_or_restart+0x34/0x740 arch/x86/kernel/signal.c:337  exit_to_user_mode_loop+0x68/0xc0 kernel/entry/common.c:40  exit_to_user_mode_prepare include/linux/irq-entry-common.h:225 [inline]  s ---truncated---",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40361",
                        "url": "https://ubuntu.com/security/CVE-2025-40361",
                        "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68185",
                        "url": "https://ubuntu.com/security/CVE-2025-68185",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfs4_setup_readdir(): insufficient locking for ->d_parent->d_inode dereferencing  Theoretically it's an oopsable race, but I don't believe one can manage to hit it on real hardware; might become doable on a KVM, but it still won't be easy to attack.  Anyway, it's easy to deal with - since xdr_encode_hyper() is just a call of put_unaligned_be64(), we can put that under ->d_lock and be done with that.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68176",
                        "url": "https://ubuntu.com/security/CVE-2025-68176",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  PCI: cadence: Check for the existence of cdns_pcie::ops before using it  cdns_pcie::ops might not be populated by all the Cadence glue drivers. This is going to be true for the upcoming Sophgo platform which doesn't set the ops.  Hence, add a check to prevent NULL pointer dereference.  [mani: reworded subject and description]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68168",
                        "url": "https://ubuntu.com/security/CVE-2025-68168",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jfs: fix uninitialized waitqueue in transaction manager  The transaction manager initialization in txInit() was not properly initializing TxBlock[0].waitor waitqueue, causing a crash when txEnd(0) is called on read-only filesystems.  When a filesystem is mounted read-only, txBegin() returns tid=0 to indicate no transaction. However, txEnd(0) still gets called and tries to access TxBlock[0].waitor via tid_to_tblock(0), but this waitqueue was never initialized because the initialization loop started at index 1 instead of 0.  This causes a 'non-static key' lockdep warning and system crash:   INFO: trying to register non-static key in txEnd  Fix by ensuring all transaction blocks including TxBlock[0] have their waitqueues properly initialized during txInit().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40312",
                        "url": "https://ubuntu.com/security/CVE-2025-40312",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jfs: Verify inode mode when loading from disk  The inode mode loaded from corrupted disk can be invalid. Do like what commit 0a9e74051313 (\"isofs: Verify inode mode when loading from disk\") does.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68321",
                        "url": "https://ubuntu.com/security/CVE-2025-68321",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  page_pool: always add GFP_NOWARN for ATOMIC allocations  Driver authors often forget to add GFP_NOWARN for page allocation from the datapath. This is annoying to users as OOMs are a fact of life, and we pretty much expect network Rx to hit page allocation failures during OOM. Make page pool add GFP_NOWARN for ATOMIC allocations by default.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68191",
                        "url": "https://ubuntu.com/security/CVE-2025-68191",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  udp_tunnel: use netdev_warn() instead of netdev_WARN()  netdev_WARN() uses WARN/WARN_ON to print a backtrace along with file and line information. In this case, udp_tunnel_nic_register() returning an error is just a failed operation, not a kernel bug.  udp_tunnel_nic_register() can fail due to a memory allocation failure (kzalloc() or udp_tunnel_nic_alloc()). This is a normal runtime error and not a kernel bug.  Replace netdev_WARN() with netdev_warn() accordingly.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40313",
                        "url": "https://ubuntu.com/security/CVE-2025-40313",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: pretend $Extend records as regular files  Since commit af153bb63a33 (\"vfs: catch invalid modes in may_open()\") requires any inode be one of S_IFDIR/S_IFLNK/S_IFREG/S_IFCHR/S_IFBLK/ S_IFIFO/S_IFSOCK type, use S_IFREG for $Extend records.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40314",
                        "url": "https://ubuntu.com/security/CVE-2025-40314",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: cdns3: gadget: Use-after-free during failed initialization and exit of cdnsp gadget  In the __cdnsp_gadget_init() and cdnsp_gadget_exit() functions, the gadget structure (pdev->gadget) was freed before its endpoints. The endpoints are linked via the ep_list in the gadget structure. Freeing the gadget first leaves dangling pointers in the endpoint list. When the endpoints are subsequently freed, this results in a use-after-free.  Fix: By separating the usb_del_gadget_udc() operation into distinct \"del\" and \"put\" steps, cdnsp_gadget_free_endpoints() can be executed prior to the final release of the gadget structure with usb_put_gadget().  A patch similar to bb9c74a5bd14(\"usb: dwc3: gadget: Free gadget structure  only after freeing endpoints\").",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68194",
                        "url": "https://ubuntu.com/security/CVE-2025-68194",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: imon: make send_packet() more robust  syzbot is reporting that imon has three problems which result in hung tasks due to forever holding device lock [1].  First problem is that when usb_rx_callback_intf0() once got -EPROTO error after ictx->dev_present_intf0 became true, usb_rx_callback_intf0() resubmits urb after printk(), and resubmitted urb causes usb_rx_callback_intf0() to again get -EPROTO error. This results in printk() flooding (RCU stalls).  Alan Stern commented [2] that    In theory it's okay to resubmit _if_ the driver has a robust   error-recovery scheme (such as giving up after some fixed limit on the   number of errors or after some fixed time has elapsed, perhaps with a   time delay to prevent a flood of errors).  Most drivers don't bother to   do this; they simply give up right away.  This makes them more   vulnerable to short-term noise interference during USB transfers, but in   reality such interference is quite rare.  There's nothing really wrong   with giving up right away.  but imon has a poor error-recovery scheme which just retries forever; this behavior should be fixed.  Since I'm not sure whether it is safe for imon users to give up upon any error code, this patch takes care of only union of error codes chosen from modules in drivers/media/rc/ directory which handle -EPROTO error (i.e. ir_toy, mceusb and igorplugusb).  Second problem is that when usb_rx_callback_intf0() once got -EPROTO error before ictx->dev_present_intf0 becomes true, usb_rx_callback_intf0() always resubmits urb due to commit 8791d63af0cf (\"[media] imon: don't wedge hardware after early callbacks\"). Move the ictx->dev_present_intf0 test introduced by commit 6f6b90c9231a (\"[media] imon: don't parse scancodes until intf configured\") to immediately before imon_incoming_packet(), or the first problem explained above happens without printk() flooding (i.e. hung task).  Third problem is that when usb_rx_callback_intf0() is not called for some reason (e.g. flaky hardware; the reproducer for this problem sometimes prevents usb_rx_callback_intf0() from being called), wait_for_completion_interruptible() in send_packet() never returns (i.e. hung task). As a workaround for such situation, change send_packet() to wait for completion with timeout of 10 seconds.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40363",
                        "url": "https://ubuntu.com/security/CVE-2025-40363",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: ipv6: fix field-spanning memcpy warning in AH output  Fix field-spanning memcpy warnings in ah6_output() and ah6_output_done() where extension headers are copied to/from IPv6 address fields, triggering fortify-string warnings about writes beyond the 16-byte address fields.    memcpy: detected field-spanning write (size 40) of single field \"&top_iph->saddr\" at net/ipv6/ah6.c:439 (size 16)   WARNING: CPU: 0 PID: 8838 at net/ipv6/ah6.c:439 ah6_output+0xe7e/0x14e0 net/ipv6/ah6.c:439  The warnings are false positives as the extension headers are intentionally placed after the IPv6 header in memory. Fix by properly copying addresses and extension headers separately, and introduce helper functions to avoid code duplication.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40342",
                        "url": "https://ubuntu.com/security/CVE-2025-40342",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-fc: use lock accessing port_state and rport state  nvme_fc_unregister_remote removes the remote port on a lport object at any point in time when there is no active association. This races with with the reconnect logic, because nvme_fc_create_association is not taking a lock to check the port_state and atomically increase the active count on the rport.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-09 16:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40343",
                        "url": "https://ubuntu.com/security/CVE-2025-40343",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-fc: avoid scheduling association deletion twice  When forcefully shutting down a port via the configfs interface, nvmet_port_subsys_drop_link() first calls nvmet_port_del_ctrls() and then nvmet_disable_port(). Both functions will eventually schedule all remaining associations for deletion.  The current implementation checks whether an association is about to be removed, but only after the work item has already been scheduled. As a result, it is possible for the first scheduled work item to free all resources, and then for the same work item to be scheduled again for deletion.  Because the association list is an RCU list, it is not possible to take a lock and remove the list entry directly, so it cannot be looked up again. Instead, a flag (terminating) must be used to determine whether the association is already in the process of being deleted.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-09 16:17:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68177",
                        "url": "https://ubuntu.com/security/CVE-2025-68177",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  cpufreq/longhaul: handle NULL policy in longhaul_exit  longhaul_exit() was calling cpufreq_cpu_get(0) without checking for a NULL policy pointer. On some systems, this could lead to a NULL dereference and a kernel warning or panic.  This patch adds a check using unlikely() and returns early if the policy is NULL.  Bugzilla: #219962",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40360",
                        "url": "https://ubuntu.com/security/CVE-2025-40360",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/sysfb: Do not dereference NULL pointer in plane reset  The plane state in __drm_gem_reset_shadow_plane() can be NULL. Do not deref that pointer, but forward NULL to the other plane-reset helpers. Clears plane->state to NULL.  v2: - fix typo in commit description (Javier)",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40315",
                        "url": "https://ubuntu.com/security/CVE-2025-40315",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: f_fs: Fix epfile null pointer access after ep enable.  A race condition occurs when ffs_func_eps_enable() runs concurrently with ffs_data_reset(). The ffs_data_clear() called in ffs_data_reset() sets ffs->epfiles to NULL before resetting ffs->eps_count to 0, leading to a NULL pointer dereference when accessing epfile->ep in ffs_func_eps_enable() after successful usb_ep_enable().  The ffs->epfiles pointer is set to NULL in both ffs_data_clear() and ffs_data_close() functions, and its modification is protected by the spinlock ffs->eps_lock. And the whole ffs_func_eps_enable() function is also protected by ffs->eps_lock.  Thus, add NULL pointer handling for ffs->epfiles in the ffs_func_eps_enable() function to fix issues",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40317",
                        "url": "https://ubuntu.com/security/CVE-2025-40317",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: slimbus: fix bus_context pointer in regmap init calls  Commit 4e65bda8273c (\"ASoC: wcd934x: fix error handling in wcd934x_codec_parse_data()\") revealed the problem in the slimbus regmap. That commit breaks audio playback, for instance, on sdm845 Thundercomm Dragonboard 845c board:   Unable to handle kernel paging request at virtual address ffff8000847cbad4  ...  CPU: 5 UID: 0 PID: 776 Comm: aplay Not tainted 6.18.0-rc1-00028-g7ea30958b305 #11 PREEMPT  Hardware name: Thundercomm Dragonboard 845c (DT)  ...  Call trace:   slim_xfer_msg+0x24/0x1ac [slimbus] (P)   slim_read+0x48/0x74 [slimbus]   regmap_slimbus_read+0x18/0x24 [regmap_slimbus]   _regmap_raw_read+0xe8/0x174   _regmap_bus_read+0x44/0x80   _regmap_read+0x60/0xd8   _regmap_update_bits+0xf4/0x140   _regmap_select_page+0xa8/0x124   _regmap_raw_write_impl+0x3b8/0x65c   _regmap_bus_raw_write+0x60/0x80   _regmap_write+0x58/0xc0   regmap_write+0x4c/0x80   wcd934x_hw_params+0x494/0x8b8 [snd_soc_wcd934x]   snd_soc_dai_hw_params+0x3c/0x7c [snd_soc_core]   __soc_pcm_hw_params+0x22c/0x634 [snd_soc_core]   dpcm_be_dai_hw_params+0x1d4/0x38c [snd_soc_core]   dpcm_fe_dai_hw_params+0x9c/0x17c [snd_soc_core]   snd_pcm_hw_params+0x124/0x464 [snd_pcm]   snd_pcm_common_ioctl+0x110c/0x1820 [snd_pcm]   snd_pcm_ioctl+0x34/0x4c [snd_pcm]   __arm64_sys_ioctl+0xac/0x104   invoke_syscall+0x48/0x104   el0_svc_common.constprop.0+0x40/0xe0   do_el0_svc+0x1c/0x28   el0_svc+0x34/0xec   el0t_64_sync_handler+0xa0/0xf0   el0t_64_sync+0x198/0x19c  The __devm_regmap_init_slimbus() started to be used instead of __regmap_init_slimbus() after the commit mentioned above and turns out the incorrect bus_context pointer (3rd argument) was used in __devm_regmap_init_slimbus(). It should be just \"slimbus\" (which is equal to &slimbus->dev). Correct it. The wcd934x codec seems to be the only or the first user of devm_regmap_init_slimbus() but we should fix it till the point where __devm_regmap_init_slimbus() was introduced therefore two \"Fixes\" tags.  While at this, also correct the same argument in __regmap_init_slimbus().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-68312",
                        "url": "https://ubuntu.com/security/CVE-2025-68312",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usbnet: Prevents free active kevent  The root cause of this issue are: 1. When probing the usbnet device, executing usbnet_link_change(dev, 0, 0); put the kevent work in global workqueue. However, the kevent has not yet been scheduled when the usbnet device is unregistered. Therefore, executing free_netdev() results in the \"free active object (kevent)\" error reported here.  2. Another factor is that when calling usbnet_disconnect()->unregister_netdev(), if the usbnet device is up, ndo_stop() is executed to cancel the kevent. However, because the device is not up, ndo_stop() is not executed.  The solution to this problem is to cancel the kevent before executing free_netdev().",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-16 16:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40319",
                        "url": "https://ubuntu.com/security/CVE-2025-40319",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Sync pending IRQ work before freeing ring buffer  Fix a race where irq_work can be queued in bpf_ringbuf_commit() but the ring buffer is freed before the work executes. In the syzbot reproducer, a BPF program attached to sched_switch triggers bpf_ringbuf_commit(), queuing an irq_work. If the ring buffer is freed before this work executes, the irq_work thread may accesses freed memory. Calling `irq_work_sync(&rb->work)` ensures that all pending irq_work complete before freeing the buffer.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40321",
                        "url": "https://ubuntu.com/security/CVE-2025-40321",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: brcmfmac: fix crash while sending Action Frames in standalone AP Mode  Currently, whenever there is a need to transmit an Action frame, the brcmfmac driver always uses the P2P vif to send the \"actframe\" IOVAR to firmware. The P2P interfaces were available when wpa_supplicant is managing the wlan interface.  However, the P2P interfaces are not created/initialized when only hostapd is managing the wlan interface. And if hostapd receives an ANQP Query REQ Action frame even from an un-associated STA, the brcmfmac driver tries to use an uninitialized P2P vif pointer for sending the IOVAR to firmware. This NULL pointer dereferencing triggers a driver crash.   [ 1417.074538] Unable to handle kernel NULL pointer dereference at virtual  address 0000000000000000  [...]  [ 1417.075188] Hardware name: Raspberry Pi 4 Model B Rev 1.5 (DT)  [...]  [ 1417.075653] Call trace:  [ 1417.075662]  brcmf_p2p_send_action_frame+0x23c/0xc58 [brcmfmac]  [ 1417.075738]  brcmf_cfg80211_mgmt_tx+0x304/0x5c0 [brcmfmac]  [ 1417.075810]  cfg80211_mlme_mgmt_tx+0x1b0/0x428 [cfg80211]  [ 1417.076067]  nl80211_tx_mgmt+0x238/0x388 [cfg80211]  [ 1417.076281]  genl_family_rcv_msg_doit+0xe0/0x158  [ 1417.076302]  genl_rcv_msg+0x220/0x2a0  [ 1417.076317]  netlink_rcv_skb+0x68/0x140  [ 1417.076330]  genl_rcv+0x40/0x60  [ 1417.076343]  netlink_unicast+0x330/0x3b8  [ 1417.076357]  netlink_sendmsg+0x19c/0x3f8  [ 1417.076370]  __sock_sendmsg+0x64/0xc0  [ 1417.076391]  ____sys_sendmsg+0x268/0x2a0  [ 1417.076408]  ___sys_sendmsg+0xb8/0x118  [ 1417.076427]  __sys_sendmsg+0x90/0xf8  [ 1417.076445]  __arm64_sys_sendmsg+0x2c/0x40  [ 1417.076465]  invoke_syscall+0x50/0x120  [ 1417.076486]  el0_svc_common.constprop.0+0x48/0xf0  [ 1417.076506]  do_el0_svc+0x24/0x38  [ 1417.076525]  el0_svc+0x30/0x100  [ 1417.076548]  el0t_64_sync_handler+0x100/0x130  [ 1417.076569]  el0t_64_sync+0x190/0x198  [ 1417.076589] Code: f9401e80 aa1603e2 f9403be1 5280e483 (f9400000)  Fix this, by always using the vif corresponding to the wdev on which the Action frame Transmission request was initiated by the userspace. This way, even if P2P vif is not available, the IOVAR is sent to firmware on AP vif and the ANQP Query RESP Action frame is transmitted without crashing the driver.  Move init_completion() for \"send_af_done\" from brcmf_p2p_create_p2pdev() to brcmf_p2p_attach(). Because the former function would not get executed when only hostapd is managing wlan interface, and it is not safe to do reinit_completion() later in brcmf_p2p_tx_action_frame(), without any prior init_completion().  And in the brcmf_p2p_tx_action_frame() function, the condition check for P2P Presence response frame is not needed, since the wpa_supplicant is properly sending the P2P Presense Response frame on the P2P-GO vif instead of the P2P-Device vif.  [Cc stable]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40322",
                        "url": "https://ubuntu.com/security/CVE-2025-40322",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fbdev: bitblit: bound-check glyph index in bit_putcs*  bit_putcs_aligned()/unaligned() derived the glyph pointer from the character value masked by 0xff/0x1ff, which may exceed the actual font's glyph count and read past the end of the built-in font array. Clamp the index to the actual glyph count before computing the address.  This fixes a global out-of-bounds read reported by syzbot.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40211",
                        "url": "https://ubuntu.com/security/CVE-2025-40211",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ACPI: video: Fix use-after-free in acpi_video_switch_brightness()  The switch_brightness_work delayed work accesses device->brightness and device->backlight, freed by acpi_video_dev_unregister_backlight() during device removal.  If the work executes after acpi_video_bus_unregister_backlight() frees these resources, it causes a use-after-free when acpi_video_switch_brightness() dereferences device->brightness or device->backlight.  Fix this by calling cancel_delayed_work_sync() for each device's switch_brightness_work in acpi_video_bus_remove_notify_handler() after removing the notify handler that queues the work. This ensures the work completes before the memory is freed.  [ rjw: Changelog edit ]",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-11-21 11:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40324",
                        "url": "https://ubuntu.com/security/CVE-2025-40324",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: Fix crash in nfsd4_read_release()  When tracing is enabled, the trace_nfsd_read_done trace point crashes during the pynfs read.testNoFh test.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-12-08 01:16:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-40083",
                        "url": "https://ubuntu.com/security/CVE-2025-40083",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: Fix null-deref in agg_dequeue  To prevent a potential crash in agg_dequeue (net/sched/sch_qfq.c) when cl->qdisc->ops->peek(cl->qdisc) returns NULL, we check the return value before using it, similar to the existing approach in sch_hfsc.c.  To avoid code duplication, the following changes are made:  1. Changed qdisc_warn_nonwc(include/net/pkt_sched.h) into a static inline function.  2. Moved qdisc_peek_len from net/sched/sch_hfsc.c to include/net/pkt_sched.h so that sch_qfq can reuse it.  3. Applied qdisc_peek_len in agg_dequeue to avoid crashing.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-10-29 14:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2024-41014",
                        "url": "https://ubuntu.com/security/CVE-2024-41014",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  xfs: add bounds checking to xlog_recover_process_data  There is a lack of verification of the space occupied by fixed members of xlog_op_header in the xlog_recover_process_data.  We can create a crafted image to trigger an out of bounds read by following these steps:     1) Mount an image of xfs, and do some file operations to leave records     2) Before umounting, copy the image for subsequent steps to simulate        abnormal exit. Because umount will ensure that tail_blk and        head_blk are the same, which will result in the inability to enter        xlog_recover_process_data     3) Write a tool to parse and modify the copied image in step 2     4) Make the end of the xlog_op_header entries only 1 byte away from        xlog_rec_header->h_size     5) xlog_rec_header->h_num_logops++     6) Modify xlog_rec_header->h_crc  Fix: Add a check to make sure there is sufficient space to access fixed members of xlog_op_header.",
                        "cve_priority": "low",
                        "cve_public_date": "2024-07-29 07:15:00 UTC"
                    },
                    {
                        "cve": "CVE-2022-49267",
                        "url": "https://ubuntu.com/security/CVE-2022-49267",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mmc: core: use sysfs_emit() instead of sprintf()  sprintf() (still used in the MMC core for the sysfs output) is vulnerable to the buffer overflow.  Use the new-fangled sysfs_emit() instead.  Found by Linux Verification Center (linuxtesting.org) with the SVACE static analysis tool.",
                        "cve_priority": "medium",
                        "cve_public_date": "2025-02-26 07:01:00 UTC"
                    },
                    {
                        "cve": "CVE-2025-21780",
                        "url": "https://ubuntu.com/security/CVE-2025-21780",
                        "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdgpu: avoid buffer overflow attach in smu_sys_set_pp_table()  It malicious user provides a small pptable through sysfs and then a bigger pptable, it may cause buffer overflow attack in function smu_sys_set_pp_table().",
                        "cve_priority": "high",
                        "cve_public_date": "2025-02-27 03:15:00 UTC"
                    }
                ],
                "launchpad_bugs_fixed": [
                    2141059,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2139704,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662,
                    2138662
                ],
                "changes": [
                    {
                        "cves": [],
                        "log": [
                            "",
                            "  * Miscellaneous upstream changes",
                            "    - apparmor: validate DFA start states are in bounds in unpack_pdb",
                            "    - apparmor: fix memory leak in verify_header",
                            "    - apparmor: replace recursive profile removal with iterative approach",
                            "    - apparmor: fix: limit the number of levels of policy namespaces",
                            "    - apparmor: fix side-effect bug in match_char() macro usage",
                            "    - apparmor: fix missing bounds check on DEFAULT table in verify_dfa()",
                            "    - apparmor: Fix double free of ns_name in aa_replace_profiles()",
                            "    - apparmor: fix unprivileged local user can do privileged policy",
                            "      management",
                            "    - apparmor: fix differential encoding verification",
                            "    - apparmor: fix race on rawdata dereference",
                            "    - apparmor: fix race between freeing data and fs accessing it",
                            ""
                        ],
                        "package": "linux",
                        "version": "5.15.0-173.183",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [],
                        "author": "Mehmet Basaran <mehmet.basaran@canonical.com>",
                        "date": "Fri, 06 Mar 2026 16:14:08 +0300"
                    },
                    {
                        "cves": [
                            {
                                "cve": "CVE-2025-71182",
                                "url": "https://ubuntu.com/security/CVE-2025-71182",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: j1939: make j1939_session_activate() fail if device is no longer registered  syzbot is still reporting    unregister_netdevice: waiting for vcan0 to become free. Usage count = 2  even after commit 93a27b5891b8 (\"can: j1939: add missing calls in NETDEV_UNREGISTER notification handler\") was added. A debug printk() patch found that j1939_session_activate() can succeed even after j1939_cancel_active_session() from j1939_netdev_notify(NETDEV_UNREGISTER) has completed.  Since j1939_cancel_active_session() is processed with the session list lock held, checking ndev->reg_state in j1939_session_activate() with the session list lock held can reliably close the race window.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2022-49465",
                                "url": "https://ubuntu.com/security/CVE-2022-49465",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  blk-throttle: Set BIO_THROTTLED when bio has been throttled  1.In current process, all bio will set the BIO_THROTTLED flag after __blk_throtl_bio().  2.If bio needs to be throttled, it will start the timer and stop submit bio directly. Bio will submit in blk_throtl_dispatch_work_fn() when the timer expires.But in the current process, if bio is throttled. The BIO_THROTTLED will be set to bio after timer start. If the bio has been completed, it may cause use-after-free blow.  BUG: KASAN: use-after-free in blk_throtl_bio+0x12f0/0x2c70 Read of size 2 at addr ffff88801b8902d4 by task fio/26380   dump_stack+0x9b/0xce  print_address_description.constprop.6+0x3e/0x60  kasan_report.cold.9+0x22/0x3a  blk_throtl_bio+0x12f0/0x2c70  submit_bio_checks+0x701/0x1550  submit_bio_noacct+0x83/0xc80  submit_bio+0xa7/0x330  mpage_readahead+0x380/0x500  read_pages+0x1c1/0xbf0  page_cache_ra_unbounded+0x471/0x6f0  do_page_cache_ra+0xda/0x110  ondemand_readahead+0x442/0xae0  page_cache_async_ra+0x210/0x300  generic_file_buffered_read+0x4d9/0x2130  generic_file_read_iter+0x315/0x490  blkdev_read_iter+0x113/0x1b0  aio_read+0x2ad/0x450  io_submit_one+0xc8e/0x1d60  __se_sys_io_submit+0x125/0x350  do_syscall_64+0x2d/0x40  entry_SYSCALL_64_after_hwframe+0x44/0xa9  Allocated by task 26380:  kasan_save_stack+0x19/0x40  __kasan_kmalloc.constprop.2+0xc1/0xd0  kmem_cache_alloc+0x146/0x440  mempool_alloc+0x125/0x2f0  bio_alloc_bioset+0x353/0x590  mpage_alloc+0x3b/0x240  do_mpage_readpage+0xddf/0x1ef0  mpage_readahead+0x264/0x500  read_pages+0x1c1/0xbf0  page_cache_ra_unbounded+0x471/0x6f0  do_page_cache_ra+0xda/0x110  ondemand_readahead+0x442/0xae0  page_cache_async_ra+0x210/0x300  generic_file_buffered_read+0x4d9/0x2130  generic_file_read_iter+0x315/0x490  blkdev_read_iter+0x113/0x1b0  aio_read+0x2ad/0x450  io_submit_one+0xc8e/0x1d60  __se_sys_io_submit+0x125/0x350  do_syscall_64+0x2d/0x40  entry_SYSCALL_64_after_hwframe+0x44/0xa9  Freed by task 0:  kasan_save_stack+0x19/0x40  kasan_set_track+0x1c/0x30  kasan_set_free_info+0x1b/0x30  __kasan_slab_free+0x111/0x160  kmem_cache_free+0x94/0x460  mempool_free+0xd6/0x320  bio_free+0xe0/0x130  bio_put+0xab/0xe0  bio_endio+0x3a6/0x5d0  blk_update_request+0x590/0x1370  scsi_end_request+0x7d/0x400  scsi_io_completion+0x1aa/0xe50  scsi_softirq_done+0x11b/0x240  blk_mq_complete_request+0xd4/0x120  scsi_mq_done+0xf0/0x200  virtscsi_vq_done+0xbc/0x150  vring_interrupt+0x179/0x390  __handle_irq_event_percpu+0xf7/0x490  handle_irq_event_percpu+0x7b/0x160  handle_irq_event+0xcc/0x170  handle_edge_irq+0x215/0xb20  common_interrupt+0x60/0x120  asm_common_interrupt+0x1e/0x40  Fix this by move BIO_THROTTLED set into the queue_lock.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-26 07:01:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71180",
                                "url": "https://ubuntu.com/security/CVE-2025-71180",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  counter: interrupt-cnt: Drop IRQF_NO_THREAD flag  An IRQ handler can either be IRQF_NO_THREAD or acquire spinlock_t, as CONFIG_PROVE_RAW_LOCK_NESTING warns: ============================= [ BUG: Invalid wait context ] 6.18.0-rc1+git... #1 ----------------------------- some-user-space-process/1251 is trying to lock: (&counter->events_list_lock){....}-{3:3}, at: counter_push_event [counter] other info that might help us debug this: context-{2:2} no locks held by some-user-space-process/.... stack backtrace: CPU: 0 UID: 0 PID: 1251 Comm: some-user-space-process 6.18.0-rc1+git... #1 PREEMPT Call trace:  show_stack (C)  dump_stack_lvl  dump_stack  __lock_acquire  lock_acquire  _raw_spin_lock_irqsave  counter_push_event [counter]  interrupt_cnt_isr [interrupt_cnt]  __handle_irq_event_percpu  handle_irq_event  handle_simple_irq  handle_irq_desc  generic_handle_domain_irq  gpio_irq_handler  handle_irq_desc  generic_handle_domain_irq  gic_handle_irq  call_on_irq_stack  do_interrupt_handler  el0_interrupt  __el0_irq_handler_common  el0t_64_irq_handler  el0t_64_irq  ... and Sebastian correctly points out. Remove IRQF_NO_THREAD as an alternative to switching to raw_spinlock_t, because the latter would limit all potential nested locks to raw_spinlock_t only.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22980",
                                "url": "https://ubuntu.com/security/CVE-2026-22980",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfsd: provide locking for v4_end_grace  Writing to v4_end_grace can race with server shutdown and result in memory being accessed after it was freed - reclaim_str_hashtbl in particularly.  We cannot hold nfsd_mutex across the nfsd4_end_grace() call as that is held while client_tracking_op->init() is called and that can wait for an upcall to nfsdcltrack which can write to v4_end_grace, resulting in a deadlock.  nfsd4_end_grace() is also called by the landromat work queue and this doesn't require locking as server shutdown will stop the work and wait for it before freeing anything that nfsd4_end_grace() might access.  However, we must be sure that writing to v4_end_grace doesn't restart the work item after shutdown has already waited for it.  For this we add a new flag protected with nn->client_lock.  It is set only while it is safe to make client tracking calls, and v4_end_grace only schedules work while the flag is set with the spinlock held.  So this patch adds a nfsd_net field \"client_tracking_active\" which is set as described.  Another field \"grace_end_forced\", is set when v4_end_grace is written.  After this is set, and providing client_tracking_active is set, the laundromat is scheduled. This \"grace_end_forced\" field bypasses other checks for whether the grace period has finished.  This resolves a race which can result in use-after-free.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23021",
                                "url": "https://ubuntu.com/security/CVE-2026-23021",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: pegasus: fix memory leak in update_eth_regs_async()  When asynchronously writing to the device registers and if usb_submit_urb() fail, the code fail to release allocated to this point resources.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22976",
                                "url": "https://ubuntu.com/security/CVE-2026-22976",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate in qfq_reset  `qfq_class->leaf_qdisc->q.qlen > 0` does not imply that the class itself is active.  Two qfq_class objects may point to the same leaf_qdisc. This happens when:  1. one QFQ qdisc is attached to the dev as the root qdisc, and  2. another QFQ qdisc is temporarily referenced (e.g., via qdisc_get() / qdisc_put()) and is pending to be destroyed, as in function tc_new_tfilter.  When packets are enqueued through the root QFQ qdisc, the shared leaf_qdisc->q.qlen increases. At the same time, the second QFQ qdisc triggers qdisc_put and qdisc_destroy: the qdisc enters qfq_reset() with its own q->q.qlen == 0, but its class's leaf qdisc->q.qlen > 0. Therefore, the qfq_reset would wrongly deactivate an inactive aggregate and trigger a null-deref in qfq_deactivate_agg:  [    0.903172] BUG: kernel NULL pointer dereference, address: 0000000000000000 [    0.903571] #PF: supervisor write access in kernel mode [    0.903860] #PF: error_code(0x0002) - not-present page [    0.904177] PGD 10299b067 P4D 10299b067 PUD 10299c067 PMD 0 [    0.904502] Oops: Oops: 0002 [#1] SMP NOPTI [    0.904737] CPU: 0 UID: 0 PID: 135 Comm: exploit Not tainted 6.19.0-rc3+ #2 NONE [    0.905157] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.17.0-0-gb52ca86e094d-prebuilt.qemu.org 04/01/2014 [    0.905754] RIP: 0010:qfq_deactivate_agg (include/linux/list.h:992 (discriminator 2) include/linux/list.h:1006 (discriminator 2) net/sched/sch_qfq.c:1367 (discriminator 2) net/sched/sch_qfq.c:1393 (discriminator 2)) [    0.906046] Code: 0f 84 4d 01 00 00 48 89 70 18 8b 4b 10 48 c7 c2 ff ff ff ff 48 8b 78 08 48 d3 e2 48 21 f2 48 2b 13 48 8b 30 48 d3 ea 8b 4b 18 0  Code starting with the faulting instruction ===========================================    0:\t0f 84 4d 01 00 00    \tje     0x153    6:\t48 89 70 18          \tmov    %rsi,0x18(%rax)    a:\t8b 4b 10             \tmov    0x10(%rbx),%ecx    d:\t48 c7 c2 ff ff ff ff \tmov    $0xffffffffffffffff,%rdx   14:\t48 8b 78 08          \tmov    0x8(%rax),%rdi   18:\t48 d3 e2             \tshl    %cl,%rdx   1b:\t48 21 f2             \tand    %rsi,%rdx   1e:\t48 2b 13             \tsub    (%rbx),%rdx   21:\t48 8b 30             \tmov    (%rax),%rsi   24:\t48 d3 ea             \tshr    %cl,%rdx   27:\t8b 4b 18             \tmov    0x18(%rbx),%ecx \t... [    0.907095] RSP: 0018:ffffc900004a39a0 EFLAGS: 00010246 [    0.907368] RAX: ffff8881043a0880 RBX: ffff888102953340 RCX: 0000000000000000 [    0.907723] RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000000 [    0.908100] RBP: ffff888102952180 R08: 0000000000000000 R09: 0000000000000000 [    0.908451] R10: ffff8881043a0000 R11: 0000000000000000 R12: ffff888102952000 [    0.908804] R13: ffff888102952180 R14: ffff8881043a0ad8 R15: ffff8881043a0880 [    0.909179] FS:  000000002a1a0380(0000) GS:ffff888196d8d000(0000) knlGS:0000000000000000 [    0.909572] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [    0.909857] CR2: 0000000000000000 CR3: 0000000102993002 CR4: 0000000000772ef0 [    0.910247] PKRU: 55555554 [    0.910391] Call Trace: [    0.910527]  <TASK> [    0.910638]  qfq_reset_qdisc (net/sched/sch_qfq.c:357 net/sched/sch_qfq.c:1485) [    0.910826]  qdisc_reset (include/linux/skbuff.h:2195 include/linux/skbuff.h:2501 include/linux/skbuff.h:3424 include/linux/skbuff.h:3430 net/sched/sch_generic.c:1036) [    0.911040]  __qdisc_destroy (net/sched/sch_generic.c:1076) [    0.911236]  tc_new_tfilter (net/sched/cls_api.c:2447) [    0.911447]  rtnetlink_rcv_msg (net/core/rtnetlink.c:6958) [    0.911663]  ? __pfx_rtnetlink_rcv_msg (net/core/rtnetlink.c:6861) [    0.911894]  netlink_rcv_skb (net/netlink/af_netlink.c:2550) [    0.912100]  netlink_unicast (net/netlink/af_netlink.c:1319 net/netlink/af_netlink.c:1344) [    0.912296]  ? __alloc_skb (net/core/skbuff.c:706) [    0.912484]  netlink_sendmsg (net/netlink/af ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-21 07:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22977",
                                "url": "https://ubuntu.com/security/CVE-2026-22977",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sock: fix hardened usercopy panic in sock_recv_errqueue  skbuff_fclone_cache was created without defining a usercopy region, [1] unlike skbuff_head_cache which properly whitelists the cb[] field. [2] This causes a usercopy BUG() when CONFIG_HARDENED_USERCOPY is enabled and the kernel attempts to copy sk_buff.cb data to userspace via sock_recv_errqueue() -> put_cmsg().  The crash occurs when: 1. TCP allocates an skb using alloc_skb_fclone()    (from skbuff_fclone_cache) [1] 2. The skb is cloned via skb_clone() using the pre-allocated fclone [3] 3. The cloned skb is queued to sk_error_queue for timestamp reporting 4. Userspace reads the error queue via recvmsg(MSG_ERRQUEUE) 5. sock_recv_errqueue() calls put_cmsg() to copy serr->ee from skb->cb [4] 6. __check_heap_object() fails because skbuff_fclone_cache has no    usercopy whitelist [5]  When cloned skbs allocated from skbuff_fclone_cache are used in the socket error queue, accessing the sock_exterr_skb structure in skb->cb via put_cmsg() triggers a usercopy hardening violation:  [    5.379589] usercopy: Kernel memory exposure attempt detected from SLUB object 'skbuff_fclone_cache' (offset 296, size 16)! [    5.382796] kernel BUG at mm/usercopy.c:102! [    5.383923] Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI [    5.384903] CPU: 1 UID: 0 PID: 138 Comm: poc_put_cmsg Not tainted 6.12.57 #7 [    5.384903] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [    5.384903] RIP: 0010:usercopy_abort+0x6c/0x80 [    5.384903] Code: 1a 86 51 48 c7 c2 40 15 1a 86 41 52 48 c7 c7 c0 15 1a 86 48 0f 45 d6 48 c7 c6 80 15 1a 86 48 89 c1 49 0f 45 f3 e8 84 27 88 ff <0f> 0b 490 [    5.384903] RSP: 0018:ffffc900006f77a8 EFLAGS: 00010246 [    5.384903] RAX: 000000000000006f RBX: ffff88800f0ad2a8 RCX: 1ffffffff0f72e74 [    5.384903] RDX: 0000000000000000 RSI: 0000000000000004 RDI: ffffffff87b973a0 [    5.384903] RBP: 0000000000000010 R08: 0000000000000000 R09: fffffbfff0f72e74 [    5.384903] R10: 0000000000000003 R11: 79706f6372657375 R12: 0000000000000001 [    5.384903] R13: ffff88800f0ad2b8 R14: ffffea00003c2b40 R15: ffffea00003c2b00 [    5.384903] FS:  0000000011bc4380(0000) GS:ffff8880bf100000(0000) knlGS:0000000000000000 [    5.384903] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [    5.384903] CR2: 000056aa3b8e5fe4 CR3: 000000000ea26004 CR4: 0000000000770ef0 [    5.384903] PKRU: 55555554 [    5.384903] Call Trace: [    5.384903]  <TASK> [    5.384903]  __check_heap_object+0x9a/0xd0 [    5.384903]  __check_object_size+0x46c/0x690 [    5.384903]  put_cmsg+0x129/0x5e0 [    5.384903]  sock_recv_errqueue+0x22f/0x380 [    5.384903]  tls_sw_recvmsg+0x7ed/0x1960 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5 [    5.384903]  ? schedule+0x6d/0x270 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5 [    5.384903]  ? mutex_unlock+0x81/0xd0 [    5.384903]  ? __pfx_mutex_unlock+0x10/0x10 [    5.384903]  ? __pfx_tls_sw_recvmsg+0x10/0x10 [    5.384903]  ? _raw_spin_lock_irqsave+0x8f/0xf0 [    5.384903]  ? _raw_read_unlock_irqrestore+0x20/0x40 [    5.384903]  ? srso_alias_return_thunk+0x5/0xfbef5  The crash offset 296 corresponds to skb2->cb within skbuff_fclones:   - sizeof(struct sk_buff) = 232 - offsetof(struct sk_buff, cb) = 40 -   offset of skb2.cb in fclones = 232 + 40 = 272 - crash offset 296 =   272 + 24 (inside sock_exterr_skb.ee)  This patch uses a local stack variable as a bounce buffer to avoid the hardened usercopy check failure.  [1] https://elixir.bootlin.com/linux/v6.12.62/source/net/ipv4/tcp.c#L885 [2] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5104 [3] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5566 [4] https://elixir.bootlin.com/linux/v6.12.62/source/net/core/skbuff.c#L5491 [5] https://elixir.bootlin.com/linux/v6.12.62/source/mm/slub.c#L5719",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-21 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22982",
                                "url": "https://ubuntu.com/security/CVE-2026-22982",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: mscc: ocelot: Fix crash when adding interface under a lag  Commit 15faa1f67ab4 (\"lan966x: Fix crash when adding interface under a lag\") fixed a similar issue in the lan966x driver caused by a NULL pointer dereference. The ocelot_set_aggr_pgids() function in the ocelot driver has similar logic and is susceptible to the same crash.  This issue specifically affects the ocelot_vsc7514.c frontend, which leaves unused ports as NULL pointers. The felix_vsc9959.c frontend is unaffected as it uses the DSA framework which registers all ports.  Fix this by checking if the port pointer is valid before accessing it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23019",
                                "url": "https://ubuntu.com/security/CVE-2026-23019",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: marvell: prestera: fix NULL dereference on devlink_alloc() failure  devlink_alloc() may return NULL on allocation failure, but prestera_devlink_alloc() unconditionally calls devlink_priv() on the returned pointer.  This leads to a NULL pointer dereference if devlink allocation fails. Add a check for a NULL devlink pointer and return NULL early to avoid the crash.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-22121",
                                "url": "https://ubuntu.com/security/CVE-2025-22121",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: fix out-of-bound read in ext4_xattr_inode_dec_ref_all()  There's issue as follows: BUG: KASAN: use-after-free in ext4_xattr_inode_dec_ref_all+0x6ff/0x790 Read of size 4 at addr ffff88807b003000 by task syz-executor.0/15172  CPU: 3 PID: 15172 Comm: syz-executor.0 Call Trace:  __dump_stack lib/dump_stack.c:82 [inline]  dump_stack+0xbe/0xfd lib/dump_stack.c:123  print_address_description.constprop.0+0x1e/0x280 mm/kasan/report.c:400  __kasan_report.cold+0x6c/0x84 mm/kasan/report.c:560  kasan_report+0x3a/0x50 mm/kasan/report.c:585  ext4_xattr_inode_dec_ref_all+0x6ff/0x790 fs/ext4/xattr.c:1137  ext4_xattr_delete_inode+0x4c7/0xda0 fs/ext4/xattr.c:2896  ext4_evict_inode+0xb3b/0x1670 fs/ext4/inode.c:323  evict+0x39f/0x880 fs/inode.c:622  iput_final fs/inode.c:1746 [inline]  iput fs/inode.c:1772 [inline]  iput+0x525/0x6c0 fs/inode.c:1758  ext4_orphan_cleanup fs/ext4/super.c:3298 [inline]  ext4_fill_super+0x8c57/0xba40 fs/ext4/super.c:5300  mount_bdev+0x355/0x410 fs/super.c:1446  legacy_get_tree+0xfe/0x220 fs/fs_context.c:611  vfs_get_tree+0x8d/0x2f0 fs/super.c:1576  do_new_mount fs/namespace.c:2983 [inline]  path_mount+0x119a/0x1ad0 fs/namespace.c:3316  do_mount+0xfc/0x110 fs/namespace.c:3329  __do_sys_mount fs/namespace.c:3540 [inline]  __se_sys_mount+0x219/0x2e0 fs/namespace.c:3514  do_syscall_64+0x33/0x40 arch/x86/entry/common.c:46  entry_SYSCALL_64_after_hwframe+0x67/0xd1  Memory state around the buggy address:  ffff88807b002f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ffff88807b002f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffff88807b003000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff                    ^  ffff88807b003080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  ffff88807b003100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff  Above issue happens as ext4_xattr_delete_inode() isn't check xattr is valid if xattr is in inode. To solve above issue call xattr_check_inode() check if xattr if valid in inode. In fact, we can directly verify in ext4_iget_extra_inode(), so that there is no divergent verification.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22992",
                                "url": "https://ubuntu.com/security/CVE-2026-22992",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: return the handler error from mon_handle_auth_done()  Currently any error from ceph_auth_handle_reply_done() is propagated via finish_auth() but isn't returned from mon_handle_auth_done().  This results in higher layers learning that (despite the monitor considering us to be successfully authenticated) something went wrong in the authentication phase and reacting accordingly, but msgr2 still trying to proceed with establishing the session in the background.  In the case of secure mode this can trigger a WARN in setup_crypto() and later lead to a NULL pointer dereference inside of prepare_auth_signature().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22991",
                                "url": "https://ubuntu.com/security/CVE-2026-22991",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make free_choose_arg_map() resilient to partial allocation  free_choose_arg_map() may dereference a NULL pointer if its caller fails after a partial allocation.  For example, in decode_choose_args(), if allocation of arg_map->args fails, execution jumps to the fail label and free_choose_arg_map() is called. Since arg_map->size is updated to a non-zero value before memory allocation, free_choose_arg_map() will iterate over arg_map->args and dereference a NULL pointer.  To prevent this potential NULL pointer dereference and make free_choose_arg_map() more resilient, add checks for pointers before iterating.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22990",
                                "url": "https://ubuntu.com/security/CVE-2026-22990",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: replace overzealous BUG_ON in osdmap_apply_incremental()  If the osdmap is (maliciously) corrupted such that the incremental osdmap epoch is different from what is expected, there is no need to BUG.  Instead, just declare the incremental osdmap to be invalid.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22984",
                                "url": "https://ubuntu.com/security/CVE-2026-22984",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: prevent potential out-of-bounds reads in handle_auth_done()  Perform an explicit bounds check on payload_len to avoid a possible out-of-bounds access in the callout.  [ idryomov: changelog ]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-22978",
                                "url": "https://ubuntu.com/security/CVE-2026-22978",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: avoid kernel-infoleak from struct iw_point  struct iw_point has a 32bit hole on 64bit arches.  struct iw_point {   void __user   *pointer;       /* Pointer to the data  (in user space) */   __u16         length;         /* number of fields or size in bytes */   __u16         flags;          /* Optional params */ };  Make sure to zero the structure to avoid disclosing 32bits of kernel data to user space.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2026-23020",
                                "url": "https://ubuntu.com/security/CVE-2026-23020",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: 3com: 3c59x: fix possible null dereference in vortex_probe1()  pdev can be null and free_ring: can be called in 1297 with a null pdev.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-31 12:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-49968",
                                "url": "https://ubuntu.com/security/CVE-2024-49968",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: filesystems without casefold feature cannot be mounted with siphash  When mounting the ext4 filesystem, if the default hash version is set to DX_HASH_SIPHASH but the casefold feature is not set, exit the mounting.",
                                "cve_priority": "low",
                                "cve_public_date": "2024-10-21 18:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-36927",
                                "url": "https://ubuntu.com/security/CVE-2024-36927",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: Fix uninit-value access in __ip_make_skb()  KMSAN reported uninit-value access in __ip_make_skb() [1].  __ip_make_skb() tests HDRINCL to know if the skb has icmphdr. However, HDRINCL can cause a race condition. If calling setsockopt(2) with IP_HDRINCL changes HDRINCL while __ip_make_skb() is running, the function will access icmphdr in the skb even if it is not included. This causes the issue reported by KMSAN.  Check FLOWI_FLAG_KNOWN_NH on fl4->flowi4_flags instead of testing HDRINCL on the socket.  Also, fl4->fl4_icmp_type and fl4->fl4_icmp_code are not initialized. These are union in struct flowi4 and are implicitly initialized by flowi4_init_output(), but we should not rely on specific union layout.  Initialize these explicitly in raw_sendmsg().  [1] BUG: KMSAN: uninit-value in __ip_make_skb+0x2b74/0x2d20 net/ipv4/ip_output.c:1481  __ip_make_skb+0x2b74/0x2d20 net/ipv4/ip_output.c:1481  ip_finish_skb include/net/ip.h:243 [inline]  ip_push_pending_frames+0x4c/0x5c0 net/ipv4/ip_output.c:1508  raw_sendmsg+0x2381/0x2690 net/ipv4/raw.c:654  inet_sendmsg+0x27b/0x2a0 net/ipv4/af_inet.c:851  sock_sendmsg_nosec net/socket.c:730 [inline]  __sock_sendmsg+0x274/0x3c0 net/socket.c:745  __sys_sendto+0x62c/0x7b0 net/socket.c:2191  __do_sys_sendto net/socket.c:2203 [inline]  __se_sys_sendto net/socket.c:2199 [inline]  __x64_sys_sendto+0x130/0x200 net/socket.c:2199  do_syscall_64+0xd8/0x1f0 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x6d/0x75  Uninit was created at:  slab_post_alloc_hook mm/slub.c:3804 [inline]  slab_alloc_node mm/slub.c:3845 [inline]  kmem_cache_alloc_node+0x5f6/0xc50 mm/slub.c:3888  kmalloc_reserve+0x13c/0x4a0 net/core/skbuff.c:577  __alloc_skb+0x35a/0x7c0 net/core/skbuff.c:668  alloc_skb include/linux/skbuff.h:1318 [inline]  __ip_append_data+0x49ab/0x68c0 net/ipv4/ip_output.c:1128  ip_append_data+0x1e7/0x260 net/ipv4/ip_output.c:1365  raw_sendmsg+0x22b1/0x2690 net/ipv4/raw.c:648  inet_sendmsg+0x27b/0x2a0 net/ipv4/af_inet.c:851  sock_sendmsg_nosec net/socket.c:730 [inline]  __sock_sendmsg+0x274/0x3c0 net/socket.c:745  __sys_sendto+0x62c/0x7b0 net/socket.c:2191  __do_sys_sendto net/socket.c:2203 [inline]  __se_sys_sendto net/socket.c:2199 [inline]  __x64_sys_sendto+0x130/0x200 net/socket.c:2199  do_syscall_64+0xd8/0x1f0 arch/x86/entry/common.c:83  entry_SYSCALL_64_after_hwframe+0x6d/0x75  CPU: 1 PID: 15709 Comm: syz-executor.7 Not tainted 6.8.0-11567-gb3603fcb79b1 #25 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-1.fc39 04/01/2014",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-05-30 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-36903",
                                "url": "https://ubuntu.com/security/CVE-2024-36903",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: Fix potential uninit-value access in __ip6_make_skb()  As it was done in commit fc1092f51567 (\"ipv4: Fix uninit-value access in __ip_make_skb()\") for IPv4, check FLOWI_FLAG_KNOWN_NH on fl6->flowi6_flags instead of testing HDRINCL on the socket to avoid a race condition which causes uninit-value access.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-05-30 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38556",
                                "url": "https://ubuntu.com/security/CVE-2025-38556",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  HID: core: Harden s32ton() against conversion to 0 bits  Testing by the syzbot fuzzer showed that the HID core gets a shift-out-of-bounds exception when it tries to convert a 32-bit quantity to a 0-bit quantity.  Ideally this should never occur, but there are buggy devices and some might have a report field with size set to zero; we shouldn't reject the report or the device just because of that.  Instead, harden the s32ton() routine so that it returns a reasonable result instead of crashing when it is called with the number of bits set to 0 -- the same as what snto32() does.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-08-19 17:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-46830",
                                "url": "https://ubuntu.com/security/CVE-2024-46830",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: x86: Acquire kvm->srcu when handling KVM_SET_VCPU_EVENTS  Grab kvm->srcu when processing KVM_SET_VCPU_EVENTS, as KVM will forcibly leave nested VMX/SVM if SMM mode is being toggled, and leaving nested VMX reads guest memory.  Note, kvm_vcpu_ioctl_x86_set_vcpu_events() can also be called from KVM_RUN via sync_regs(), which already holds SRCU.  I.e. trying to precisely use kvm_vcpu_srcu_read_lock() around the problematic SMM code would cause problems.  Acquiring SRCU isn't all that expensive, so for simplicity, grab it unconditionally for KVM_SET_VCPU_EVENTS.   =============================  WARNING: suspicious RCU usage  6.10.0-rc7-332d2c1d713e-next-vm #552 Not tainted  -----------------------------  include/linux/kvm_host.h:1027 suspicious rcu_dereference_check() usage!   other info that might help us debug this:   rcu_scheduler_active = 2, debug_locks = 1  1 lock held by repro/1071:   #0: ffff88811e424430 (&vcpu->mutex){+.+.}-{3:3}, at: kvm_vcpu_ioctl+0x7d/0x970 [kvm]   stack backtrace:  CPU: 15 PID: 1071 Comm: repro Not tainted 6.10.0-rc7-332d2c1d713e-next-vm #552  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 0.0.0 02/06/2015  Call Trace:   <TASK>   dump_stack_lvl+0x7f/0x90   lockdep_rcu_suspicious+0x13f/0x1a0   kvm_vcpu_gfn_to_memslot+0x168/0x190 [kvm]   kvm_vcpu_read_guest+0x3e/0x90 [kvm]   nested_vmx_load_msr+0x6b/0x1d0 [kvm_intel]   load_vmcs12_host_state+0x432/0xb40 [kvm_intel]   vmx_leave_nested+0x30/0x40 [kvm_intel]   kvm_vcpu_ioctl_x86_set_vcpu_events+0x15d/0x2b0 [kvm]   kvm_arch_vcpu_ioctl+0x1107/0x1750 [kvm]   ? mark_held_locks+0x49/0x70   ? kvm_vcpu_ioctl+0x7d/0x970 [kvm]   ? kvm_vcpu_ioctl+0x497/0x970 [kvm]   kvm_vcpu_ioctl+0x497/0x970 [kvm]   ? lock_acquire+0xba/0x2d0   ? find_held_lock+0x2b/0x80   ? do_user_addr_fault+0x40c/0x6f0   ? lock_release+0xb7/0x270   __x64_sys_ioctl+0x82/0xb0   do_syscall_64+0x6c/0x170   entry_SYSCALL_64_after_hwframe+0x4b/0x53  RIP: 0033:0x7ff11eb1b539   </TASK>",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-09-27 13:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38129",
                                "url": "https://ubuntu.com/security/CVE-2025-38129",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  page_pool: Fix use-after-free in page_pool_recycle_in_ring  syzbot reported a uaf in page_pool_recycle_in_ring:  BUG: KASAN: slab-use-after-free in lock_release+0x151/0xa30 kernel/locking/lockdep.c:5862 Read of size 8 at addr ffff8880286045a0 by task syz.0.284/6943  CPU: 0 UID: 0 PID: 6943 Comm: syz.0.284 Not tainted 6.13.0-rc3-syzkaller-gdfa94ce54f41 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/13/2024 Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x241/0x360 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0x169/0x550 mm/kasan/report.c:489  kasan_report+0x143/0x180 mm/kasan/report.c:602  lock_release+0x151/0xa30 kernel/locking/lockdep.c:5862  __raw_spin_unlock_bh include/linux/spinlock_api_smp.h:165 [inline]  _raw_spin_unlock_bh+0x1b/0x40 kernel/locking/spinlock.c:210  spin_unlock_bh include/linux/spinlock.h:396 [inline]  ptr_ring_produce_bh include/linux/ptr_ring.h:164 [inline]  page_pool_recycle_in_ring net/core/page_pool.c:707 [inline]  page_pool_put_unrefed_netmem+0x748/0xb00 net/core/page_pool.c:826  page_pool_put_netmem include/net/page_pool/helpers.h:323 [inline]  page_pool_put_full_netmem include/net/page_pool/helpers.h:353 [inline]  napi_pp_put_page+0x149/0x2b0 net/core/skbuff.c:1036  skb_pp_recycle net/core/skbuff.c:1047 [inline]  skb_free_head net/core/skbuff.c:1094 [inline]  skb_release_data+0x6c4/0x8a0 net/core/skbuff.c:1125  skb_release_all net/core/skbuff.c:1190 [inline]  __kfree_skb net/core/skbuff.c:1204 [inline]  sk_skb_reason_drop+0x1c9/0x380 net/core/skbuff.c:1242  kfree_skb_reason include/linux/skbuff.h:1263 [inline]  __skb_queue_purge_reason include/linux/skbuff.h:3343 [inline]  root cause is:  page_pool_recycle_in_ring   ptr_ring_produce     spin_lock(&r->producer_lock);     WRITE_ONCE(r->queue[r->producer++], ptr)       //recycle last page to pool \t\t\t\tpage_pool_release \t\t\t\t  page_pool_scrub \t\t\t\t    page_pool_empty_ring \t\t\t\t      ptr_ring_consume \t\t\t\t      page_pool_return_page  //release all page \t\t\t\t  __page_pool_destroy \t\t\t\t     free_percpu(pool->recycle_stats); \t\t\t\t     free(pool) //free       spin_unlock(&r->producer_lock); //pool->ring uaf read   recycle_stat_inc(pool, ring);  page_pool can be free while page pool recycle the last page in ring. Add producer-lock barrier to page_pool_release to prevent the page pool from being free before all pages have been recycled.  recycle_stat_inc() is empty when CONFIG_PAGE_POOL_STATS is not enabled, which will trigger Wempty-body build warning. Add definition for pool stat macro to fix warning.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-07-03 09:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2022-49635",
                                "url": "https://ubuntu.com/security/CVE-2022-49635",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915/selftests: fix subtraction overflow bug  On some machines hole_end can be small enough to cause subtraction overflow. On the other side (addr + 2 * min_alignment) can overflow in case of mock tests. This patch should handle both cases.  (cherry picked from commit ab3edc679c552a466e4bf0b11af3666008bd65a2)",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-26 07:01:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-22111",
                                "url": "https://ubuntu.com/security/CVE-2025-22111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: Remove RTNL dance for SIOCBRADDIF and SIOCBRDELIF.  SIOCBRDELIF is passed to dev_ioctl() first and later forwarded to br_ioctl_call(), which causes unnecessary RTNL dance and the splat below [0] under RTNL pressure.  Let's say Thread A is trying to detach a device from a bridge and Thread B is trying to remove the bridge.  In dev_ioctl(), Thread A bumps the bridge device's refcnt by netdev_hold() and releases RTNL because the following br_ioctl_call() also re-acquires RTNL.  In the race window, Thread B could acquire RTNL and try to remove the bridge device.  Then, rtnl_unlock() by Thread B will release RTNL and wait for netdev_put() by Thread A.  Thread A, however, must hold RTNL after the unlock in dev_ifsioc(), which may take long under RTNL pressure, resulting in the splat by Thread B.    Thread A (SIOCBRDELIF)           Thread B (SIOCBRDELBR)   ----------------------           ----------------------   sock_ioctl                       sock_ioctl   `- sock_do_ioctl                 `- br_ioctl_call      `- dev_ioctl                     `- br_ioctl_stub         |- rtnl_lock                     |         |- dev_ifsioc                    '         '  |- dev = __dev_get_by_name(...)            |- netdev_hold(dev, ...)      .        /   |- rtnl_unlock  ------.       |        |   |- br_ioctl_call       `--->  |- rtnl_lock   Race |   |  `- br_ioctl_stub           |- br_del_bridge   Window   |     |                       |  |- dev = __dev_get_by_name(...)        |   |     |  May take long        |  `- br_dev_delete(dev, ...)        |   |     |  under RTNL pressure  |     `- unregister_netdevice_queue(dev, ...)        |   |     |               |       `- rtnl_unlock        \\   |     |- rtnl_lock  <-'          `- netdev_run_todo            |     |- ...                        `- netdev_run_todo            |     `- rtnl_unlock                   |- __rtnl_unlock            |                                      |- netdev_wait_allrefs_any            |- netdev_put(dev, ...)  <----------------'                                                 Wait refcnt decrement                                                 and log splat below  To avoid blocking SIOCBRDELBR unnecessarily, let's not call dev_ioctl() for SIOCBRADDIF and SIOCBRDELIF.  In the dev_ioctl() path, we do the following:    1. Copy struct ifreq by get_user_ifreq in sock_do_ioctl()   2. Check CAP_NET_ADMIN in dev_ioctl()   3. Call dev_load() in dev_ioctl()   4. Fetch the master dev from ifr.ifr_name in dev_ifsioc()  3. can be done by request_module() in br_ioctl_call(), so we move 1., 2., and 4. to br_ioctl_stub().  Note that 2. is also checked later in add_del_if(), but it's better performed before RTNL.  SIOCBRADDIF and SIOCBRDELIF have been processed in dev_ioctl() since the pre-git era, and there seems to be no specific reason to process them there.  [0]: unregister_netdevice: waiting for wpan3 to become free. Usage count = 2 ref_tracker: wpan3@ffff8880662d8608 has 1/1 users at      __netdev_tracker_alloc include/linux/netdevice.h:4282 [inline]      netdev_hold include/linux/netdevice.h:4311 [inline]      dev_ifsioc+0xc6a/0x1160 net/core/dev_ioctl.c:624      dev_ioctl+0x255/0x10c0 net/core/dev_ioctl.c:826      sock_do_ioctl+0x1ca/0x260 net/socket.c:1213      sock_ioctl+0x23a/0x6c0 net/socket.c:1318      vfs_ioctl fs/ioctl.c:51 [inline]      __do_sys_ioctl fs/ioctl.c:906 [inline]      __se_sys_ioctl fs/ioctl.c:892 [inline]      __x64_sys_ioctl+0x1a4/0x210 fs/ioctl.c:892      do_syscall_x64 arch/x86/entry/common.c:52 [inline]      do_syscall_64+0xcb/0x250 arch/x86/entry/common.c:83      entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71127",
                                "url": "https://ubuntu.com/security/CVE-2025-71127",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: mac80211: Discard Beacon frames to non-broadcast address  Beacon frames are required to be sent to the broadcast address, see IEEE Std 802.11-2020, 11.1.3.1 (\"The Address 1 field of the Beacon .. frame shall be set to the broadcast address\"). A unicast Beacon frame might be used as a targeted attack to get one of the associated STAs to do something (e.g., using CSA to move it to another channel). As such, it is better have strict filtering for this on the received side and discard all Beacon frames that are sent to an unexpected address.  This is even more important for cases where beacon protection is used. The current implementation in mac80211 is correctly discarding unicast Beacon frames if the Protected Frame bit in the Frame Control field is set to 0. However, if that bit is set to 1, the logic used for checking for configured BIGTK(s) does not actually work. If the driver does not have logic for dropping unicast Beacon frames with Protected Frame bit 1, these frames would be accepted in mac80211 processing as valid Beacon frames even though they are not protected. This would allow beacon protection to be bypassed. While the logic for checking beacon protection could be extended to cover this corner case, a more generic check for discard all Beacon frames based on A1=unicast address covers this without needing additional changes.  Address all these issues by dropping received Beacon frames if they are sent to a non-broadcast address.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71081",
                                "url": "https://ubuntu.com/security/CVE-2025-71081",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ASoC: stm32: sai: fix OF node leak on probe  The reference taken to the sync provider OF node when probing the platform device is currently only dropped if the set_sync() callback fails during DAI probe.  Make sure to drop the reference on platform probe failures (e.g. probe deferral) and on driver unbind.  This also avoids a potential use-after-free in case the DAI is ever reprobed without first rebinding the platform driver.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71078",
                                "url": "https://ubuntu.com/security/CVE-2025-71078",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  powerpc/64s/slb: Fix SLB multihit issue during SLB preload  On systems using the hash MMU, there is a software SLB preload cache that mirrors the entries loaded into the hardware SLB buffer. This preload cache is subject to periodic eviction — typically after every 256 context switches — to remove old entry.  To optimize performance, the kernel skips switch_mmu_context() in switch_mm_irqs_off() when the prev and next mm_struct are the same. However, on hash MMU systems, this can lead to inconsistencies between the hardware SLB and the software preload cache.  If an SLB entry for a process is evicted from the software cache on one CPU, and the same process later runs on another CPU without executing switch_mmu_context(), the hardware SLB may retain stale entries. If the kernel then attempts to reload that entry, it can trigger an SLB multi-hit error.  The following timeline shows how stale SLB entries are created and can cause a multi-hit error when a process moves between CPUs without a MMU context switch.  CPU 0                                   CPU 1 -----                                    ----- Process P exec                                    swapper/1  load_elf_binary   begin_new_exc     activate_mm      switch_mm_irqs_off       switch_mmu_context        switch_slb        /*         * This invalidates all         * the entries in the HW         * and setup the new HW         * SLB entries as per the         * preload cache.         */ context_switch sched_migrate_task migrates process P to cpu-1  Process swapper/0                       context switch (to process P) (uses mm_struct of Process P)           switch_mm_irqs_off()                                          switch_slb                                            load_slb++                                             /*                                             * load_slb becomes 0 here                                             * and we evict an entry from                                             * the preload cache with                                             * preload_age(). We still                                             * keep HW SLB and preload                                             * cache in sync, that is                                             * because all HW SLB entries                                             * anyways gets evicted in                                             * switch_slb during SLBIA.                                             * We then only add those                                             * entries back in HW SLB,                                             * which are currently                                             * present in preload_cache                                             * (after eviction).                                             */                                         load_elf_binary continues...                                          setup_new_exec()                                           slb_setup_new_exec()                                          sched_switch event                                         sched_migrate_task migrates                                         process P to cpu-0  context_switch from swapper/0 to Process P  switch_mm_irqs_off()   /*    * Since both prev and next mm struct are same we don't call    * switch_mmu_context(). This will cause the HW SLB and SW preload    * cache to go out of sync in preload_new_slb_context. Because there    * was an SLB entry which was evicted from both HW and preload cache    * on cpu-1. Now later in preload_new_slb_context(), when we will try    * to add the same preload entry again, we will add this to the SW    * preload cache and then will add it to the HW SLB. Since on cpu-0    * this entry was never invalidated, hence adding this entry to the HW    * SLB will cause a SLB multi-hit error.    */ load_elf_binary cont ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68803",
                                "url": "https://ubuntu.com/security/CVE-2025-68803",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: NFSv4 file creation neglects setting ACL  An NFSv4 client that sets an ACL with a named principal during file creation retrieves the ACL afterwards, and finds that it is only a default ACL (based on the mode bits) and not the ACL that was requested during file creation. This violates RFC 8881 section 6.4.1.3: \"the ACL attribute is set as given\".  The issue occurs in nfsd_create_setattr(), which calls nfsd_attrs_valid() to determine whether to call nfsd_setattr(). However, nfsd_attrs_valid() checks only for iattr changes and security labels, but not POSIX ACLs. When only an ACL is present, the function returns false, nfsd_setattr() is skipped, and the POSIX ACL is never applied to the inode.  Subsequently, when the client retrieves the ACL, the server finds no POSIX ACL on the inode and returns one generated from the file's mode bits rather than returning the originally-specified ACL.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71120",
                                "url": "https://ubuntu.com/security/CVE-2025-71120",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in gss_read_proxy_verf  A zero length gss_token results in pages == 0 and in_token->pages[0] is NULL. The code unconditionally evaluates page_address(in_token->pages[0]) for the initial memcpy, which can dereference NULL even when the copy length is 0. Guard the first memcpy so it only runs when length > 0.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71113",
                                "url": "https://ubuntu.com/security/CVE-2025-71113",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: af_alg - zero initialize memory allocated via sock_kmalloc  Several crypto user API contexts and requests allocated with sock_kmalloc() were left uninitialized, relying on callers to set fields explicitly. This resulted in the use of uninitialized data in certain error paths or when new fields are added in the future.  The ACVP patches also contain two user-space interface files: algif_kpp.c and algif_akcipher.c. These too rely on proper initialization of their context structures.  A particular issue has been observed with the newly added 'inflight' variable introduced in af_alg_ctx by commit:    67b164a871af (\"crypto: af_alg - Disallow multiple in-flight AIO requests\")  Because the context is not memset to zero after allocation, the inflight variable has contained garbage values. As a result, af_alg_alloc_areq() has incorrectly returned -EBUSY randomly when the garbage value was interpreted as true:    https://github.com/gregkh/linux/blame/master/crypto/af_alg.c#L1209  The check directly tests ctx->inflight without explicitly comparing against true/false. Since inflight is only ever set to true or false later, an uninitialized value has triggered -EBUSY failures. Zero-initializing memory allocated with sock_kmalloc() ensures inflight and other fields start in a known state, removing random issues caused by uninitialized data.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71068",
                                "url": "https://ubuntu.com/security/CVE-2025-71068",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  svcrdma: bound check rq_pages index in inline path  svc_rdma_copy_inline_range indexed rqstp->rq_pages[rc_curpage] without verifying rc_curpage stays within the allocated page array. Add guards before the first use and after advancing to a new page.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68821",
                                "url": "https://ubuntu.com/security/CVE-2025-68821",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fuse: fix readahead reclaim deadlock  Commit e26ee4efbc79 (\"fuse: allocate ff->release_args only if release is needed\") skips allocating ff->release_args if the server does not implement open. However in doing so, fuse_prepare_release() now skips grabbing the reference on the inode, which makes it possible for an inode to be evicted from the dcache while there are inflight readahead requests. This causes a deadlock if the server triggers reclaim while servicing the readahead request and reclaim attempts to evict the inode of the file being read ahead. Since the folio is locked during readahead, when reclaim evicts the fuse inode and fuse_evict_inode() attempts to remove all folios associated with the inode from the page cache (truncate_inode_pages_range()), reclaim will block forever waiting for the lock since readahead cannot relinquish the lock because it is itself blocked in reclaim:  >>> stack_trace(1504735)  folio_wait_bit_common (mm/filemap.c:1308:4)  folio_lock (./include/linux/pagemap.h:1052:3)  truncate_inode_pages_range (mm/truncate.c:336:10)  fuse_evict_inode (fs/fuse/inode.c:161:2)  evict (fs/inode.c:704:3)  dentry_unlink_inode (fs/dcache.c:412:3)  __dentry_kill (fs/dcache.c:615:3)  shrink_kill (fs/dcache.c:1060:12)  shrink_dentry_list (fs/dcache.c:1087:3)  prune_dcache_sb (fs/dcache.c:1168:2)  super_cache_scan (fs/super.c:221:10)  do_shrink_slab (mm/shrinker.c:435:9)  shrink_slab (mm/shrinker.c:626:10)  shrink_node (mm/vmscan.c:5951:2)  shrink_zones (mm/vmscan.c:6195:3)  do_try_to_free_pages (mm/vmscan.c:6257:3)  do_swap_page (mm/memory.c:4136:11)  handle_pte_fault (mm/memory.c:5562:10)  handle_mm_fault (mm/memory.c:5870:9)  do_user_addr_fault (arch/x86/mm/fault.c:1338:10)  handle_page_fault (arch/x86/mm/fault.c:1481:3)  exc_page_fault (arch/x86/mm/fault.c:1539:2)  asm_exc_page_fault+0x22/0x27  Fix this deadlock by allocating ff->release_args and grabbing the reference on the inode when preparing the file for release even if the server does not implement open. The inode reference will be dropped when the last reference on the fuse file is dropped (see fuse_file_put() -> fuse_release_end()).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68796",
                                "url": "https://ubuntu.com/security/CVE-2025-68796",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix to avoid updating zero-sized extent in extent cache  As syzbot reported:  F2FS-fs (loop0): __update_extent_tree_range: extent len is zero, type: 0, extent [0, 0, 0], age [0, 0] ------------[ cut here ]------------ kernel BUG at fs/f2fs/extent_cache.c:678! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 0 UID: 0 PID: 5336 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:__update_extent_tree_range+0x13bc/0x1500 fs/f2fs/extent_cache.c:678 Call Trace:  <TASK>  f2fs_update_read_extent_cache_range+0x192/0x3e0 fs/f2fs/extent_cache.c:1085  f2fs_do_zero_range fs/f2fs/file.c:1657 [inline]  f2fs_zero_range+0x10c1/0x1580 fs/f2fs/file.c:1737  f2fs_fallocate+0x583/0x990 fs/f2fs/file.c:2030  vfs_fallocate+0x669/0x7e0 fs/open.c:342  ioctl_preallocate fs/ioctl.c:289 [inline]  file_ioctl+0x611/0x780 fs/ioctl.c:-1  do_vfs_ioctl+0xb33/0x1430 fs/ioctl.c:576  __do_sys_ioctl fs/ioctl.c:595 [inline]  __se_sys_ioctl+0x82/0x170 fs/ioctl.c:583  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f07bc58eec9  In error path of f2fs_zero_range(), it may add a zero-sized extent into extent cache, it should be avoided.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71105",
                                "url": "https://ubuntu.com/security/CVE-2025-71105",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: use global inline_xattr_slab instead of per-sb slab cache  As Hong Yun reported in mailing list:  loop7: detected capacity change from 0 to 131072 ------------[ cut here ]------------ kmem_cache of name 'f2fs_xattr_entry-7:7' already exists WARNING: CPU: 0 PID: 24426 at mm/slab_common.c:110 kmem_cache_sanity_check mm/slab_common.c:109 [inline] WARNING: CPU: 0 PID: 24426 at mm/slab_common.c:110 __kmem_cache_create_args+0xa6/0x320 mm/slab_common.c:307 CPU: 0 UID: 0 PID: 24426 Comm: syz.7.1370 Not tainted 6.17.0-rc4 #1 PREEMPT(full) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 RIP: 0010:kmem_cache_sanity_check mm/slab_common.c:109 [inline] RIP: 0010:__kmem_cache_create_args+0xa6/0x320 mm/slab_common.c:307 Call Trace:  __kmem_cache_create include/linux/slab.h:353 [inline]  f2fs_kmem_cache_create fs/f2fs/f2fs.h:2943 [inline]  f2fs_init_xattr_caches+0xa5/0xe0 fs/f2fs/xattr.c:843  f2fs_fill_super+0x1645/0x2620 fs/f2fs/super.c:4918  get_tree_bdev_flags+0x1fb/0x260 fs/super.c:1692  vfs_get_tree+0x43/0x140 fs/super.c:1815  do_new_mount+0x201/0x550 fs/namespace.c:3808  do_mount fs/namespace.c:4136 [inline]  __do_sys_mount fs/namespace.c:4347 [inline]  __se_sys_mount+0x298/0x2f0 fs/namespace.c:4324  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0x8e/0x3a0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x76/0x7e  The bug can be reproduced w/ below scripts: - mount /dev/vdb /mnt1 - mount /dev/vdc /mnt2 - umount /mnt1 - mounnt /dev/vdb /mnt1  The reason is if we created two slab caches, named f2fs_xattr_entry-7:3 and f2fs_xattr_entry-7:7, and they have the same slab size. Actually, slab system will only create one slab cache core structure which has slab name of \"f2fs_xattr_entry-7:3\", and two slab caches share the same structure and cache address.  So, if we destroy f2fs_xattr_entry-7:3 cache w/ cache address, it will decrease reference count of slab cache, rather than release slab cache entirely, since there is one more user has referenced the cache.  Then, if we try to create slab cache w/ name \"f2fs_xattr_entry-7:3\" again, slab system will find that there is existed cache which has the same name and trigger the warning.  Let's changes to use global inline_xattr_slab instead of per-sb slab cache for fixing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68344",
                                "url": "https://ubuntu.com/security/CVE-2025-68344",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: wavefront: Fix integer overflow in sample size validation  The wavefront_send_sample() function has an integer overflow issue when validating sample size. The header->size field is u32 but gets cast to int for comparison with dev->freemem  Fix by using unsigned comparison to avoid integer overflow.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71077",
                                "url": "https://ubuntu.com/security/CVE-2025-71077",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tpm: Cap the number of PCR banks  tpm2_get_pcr_allocation() does not cap any upper limit for the number of banks. Cap the limit to eight banks so that out of bounds values coming from external I/O cause on only limited harm.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68282",
                                "url": "https://ubuntu.com/security/CVE-2025-68282",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: udc: fix use-after-free in usb_gadget_state_work  A race condition during gadget teardown can lead to a use-after-free in usb_gadget_state_work(), as reported by KASAN:    BUG: KASAN: invalid-access in sysfs_notify+0x2c/0xd0   Workqueue: events usb_gadget_state_work  The fundamental race occurs because a concurrent event (e.g., an interrupt) can call usb_gadget_set_state() and schedule gadget->work at any time during the cleanup process in usb_del_gadget().  Commit 399a45e5237c (\"usb: gadget: core: flush gadget workqueue after device removal\") attempted to fix this by moving flush_work() to after device_del(). However, this does not fully solve the race, as a new work item can still be scheduled *after* flush_work() completes but before the gadget's memory is freed, leading to the same use-after-free.  This patch fixes the race condition robustly by introducing a 'teardown' flag and a 'state_lock' spinlock to the usb_gadget struct. The flag is set during cleanup in usb_del_gadget() *before* calling flush_work() to prevent any new work from being scheduled once cleanup has commenced. The scheduling site, usb_gadget_set_state(), now checks this flag under the lock before queueing the work, thus safely closing the race window.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-22022",
                                "url": "https://ubuntu.com/security/CVE-2025-22022",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: xhci: Apply the link chain quirk on NEC isoc endpoints  Two clearly different specimens of NEC uPD720200 (one with start/stop bug, one without) were seen to cause IOMMU faults after some Missed Service Errors. Faulting address is immediately after a transfer ring segment and patched dynamic debug messages revealed that the MSE was received when waiting for a TD near the end of that segment:  [ 1.041954] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ffa08fe0 [ 1.042120] xhci_hcd: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0005 address=0xffa09000 flags=0x0000] [ 1.042146] xhci_hcd: AMD-Vi: Event logged [IO_PAGE_FAULT domain=0x0005 address=0xffa09040 flags=0x0000]  It gets even funnier if the next page is a ring segment accessible to the HC. Below, it reports MSE in segment at ff1e8000, plows through a zero-filled page at ff1e9000 and starts reporting events for TRBs in page at ff1ea000 every microframe, instead of jumping to seg ff1e6000.  [ 7.041671] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ff1e8fe0 [ 7.041999] xhci_hcd: Miss service interval error for slot 1 ep 2 expected TD DMA ff1e8fe0 [ 7.042011] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042028] xhci_hcd: All TDs skipped for slot 1 ep 2. Clear skip flag. [ 7.042134] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042138] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 31 [ 7.042144] xhci_hcd: Looking for event-dma 00000000ff1ea040 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.042259] xhci_hcd: WARN: buffer overrun event for slot 1 ep 2 on endpoint [ 7.042262] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 31 [ 7.042266] xhci_hcd: Looking for event-dma 00000000ff1ea050 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820  At some point completion events change from Isoch Buffer Overrun to Short Packet and the HC finally finds cycle bit mismatch in ff1ec000.  [ 7.098130] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 [ 7.098132] xhci_hcd: Looking for event-dma 00000000ff1ecc50 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.098254] xhci_hcd: ERROR Transfer event TRB DMA ptr not part of current TD ep_index 2 comp_code 13 [ 7.098256] xhci_hcd: Looking for event-dma 00000000ff1ecc60 trb-start 00000000ff1e6820 trb-end 00000000ff1e6820 [ 7.098379] xhci_hcd: Overrun event on slot 1 ep 2  It's possible that data from the isochronous device were written to random buffers of pending TDs on other endpoints (either IN or OUT), other devices or even other HCs in the same IOMMU domain.  Lastly, an error from a different USB device on another HC. Was it caused by the above? I don't know, but it may have been. The disk was working without any other issues and generated PCIe traffic to starve the NEC of upstream BW and trigger those MSEs. The two HCs shared one x1 slot by means of a commercial \"PCIe splitter\" board.  [ 7.162604] usb 10-2: reset SuperSpeed USB device number 3 using xhci_hcd [ 7.178990] sd 9:0:0:0: [sdb] tag#0 UNKNOWN(0x2003) Result: hostbyte=0x07 driverbyte=DRIVER_OK cmd_age=0s [ 7.179001] sd 9:0:0:0: [sdb] tag#0 CDB: opcode=0x28 28 00 04 02 ae 00 00 02 00 00 [ 7.179004] I/O error, dev sdb, sector 67284480 op 0x0:(READ) flags 0x80700 phys_seg 5 prio class 0  Fortunately, it appears that this ridiculous bug is avoided by setting the chain bit of Link TRBs on isochronous rings. Other ancient HCs are known which also expect the bit to be set and they ignore Link TRBs if it's not. Reportedly, 0.95 spec guaranteed that the bit is set.  The bandwidth-starved NEC HC running a 32KB/uframe UVC endpoint reports tens of MSEs per second and runs into the bug within seconds. Chaining Link TRBs allows the same workload to run for many minutes, many times.  No ne ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-04-16 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40110",
                                "url": "https://ubuntu.com/security/CVE-2025-40110",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vmwgfx: Fix a null-ptr access in the cursor snooper  Check that the resource which is converted to a surface exists before trying to use the cursor snooper on it.  vmw_cmd_res_check allows explicit invalid (SVGA3D_INVALID_ID) identifiers because some svga commands accept SVGA3D_INVALID_ID to mean \"no surface\", unfortunately functions that accept the actual surfaces as objects might (and in case of the cursor snooper, do not) be able to handle null objects. Make sure that we validate not only the identifier (via the vmw_cmd_res_check) but also check that the actual resource exists before trying to do something with it.  Fixes unchecked null-ptr reference in the snooping code.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-12 02:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-38022",
                                "url": "https://ubuntu.com/security/CVE-2025-38022",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/core: Fix \"KASAN: slab-use-after-free Read in ib_register_device\" problem  Call Trace:   __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:408 [inline]  print_report+0xc3/0x670 mm/kasan/report.c:521  kasan_report+0xe0/0x110 mm/kasan/report.c:634  strlen+0x93/0xa0 lib/string.c:420  __fortify_strlen include/linux/fortify-string.h:268 [inline]  get_kobj_path_length lib/kobject.c:118 [inline]  kobject_get_path+0x3f/0x2a0 lib/kobject.c:158  kobject_uevent_env+0x289/0x1870 lib/kobject_uevent.c:545  ib_register_device drivers/infiniband/core/device.c:1472 [inline]  ib_register_device+0x8cf/0xe00 drivers/infiniband/core/device.c:1393  rxe_register_device+0x275/0x320 drivers/infiniband/sw/rxe/rxe_verbs.c:1552  rxe_net_add+0x8e/0xe0 drivers/infiniband/sw/rxe/rxe_net.c:550  rxe_newlink+0x70/0x190 drivers/infiniband/sw/rxe/rxe.c:225  nldev_newlink+0x3a3/0x680 drivers/infiniband/core/nldev.c:1796  rdma_nl_rcv_msg+0x387/0x6e0 drivers/infiniband/core/netlink.c:195  rdma_nl_rcv_skb.constprop.0.isra.0+0x2e5/0x450  netlink_unicast_kernel net/netlink/af_netlink.c:1313 [inline]  netlink_unicast+0x53a/0x7f0 net/netlink/af_netlink.c:1339  netlink_sendmsg+0x8d1/0xdd0 net/netlink/af_netlink.c:1883  sock_sendmsg_nosec net/socket.c:712 [inline]  __sock_sendmsg net/socket.c:727 [inline]  ____sys_sendmsg+0xa95/0xc70 net/socket.c:2566  ___sys_sendmsg+0x134/0x1d0 net/socket.c:2620  __sys_sendmsg+0x16d/0x220 net/socket.c:2652  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xcd/0x260 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  This problem is similar to the problem that the commit 1d6a9e7449e2 (\"RDMA/core: Fix use-after-free when rename device name\") fixes.  The root cause is: the function ib_device_rename() renames the name with lock. But in the function kobject_uevent(), this name is accessed without lock protection at the same time.  The solution is to add the lock protection when this name is accessed in the function kobject_uevent().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-06-18 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71083",
                                "url": "https://ubuntu.com/security/CVE-2025-71083",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/ttm: Avoid NULL pointer deref for evicted BOs  It is possible for a BO to exist that is not currently associated with a resource, e.g. because it has been evicted.  When devcoredump tries to read the contents of all BOs for dumping, we need to expect this as well -- in this case, ENODATA is recorded instead of the buffer contents.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71079",
                                "url": "https://ubuntu.com/security/CVE-2025-71079",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: nfc: fix deadlock between nfc_unregister_device and rfkill_fop_write  A deadlock can occur between nfc_unregister_device() and rfkill_fop_write() due to lock ordering inversion between device_lock and rfkill_global_mutex.  The problematic lock order is:  Thread A (rfkill_fop_write):   rfkill_fop_write()     mutex_lock(&rfkill_global_mutex)       rfkill_set_block()         nfc_rfkill_set_block()           nfc_dev_down()             device_lock(&dev->dev)    <- waits for device_lock  Thread B (nfc_unregister_device):   nfc_unregister_device()     device_lock(&dev->dev)       rfkill_unregister()         mutex_lock(&rfkill_global_mutex)  <- waits for rfkill_global_mutex  This creates a classic ABBA deadlock scenario.  Fix this by moving rfkill_unregister() and rfkill_destroy() outside the device_lock critical section. Store the rfkill pointer in a local variable before releasing the lock, then call rfkill_unregister() after releasing device_lock.  This change is safe because rfkill_fop_write() holds rfkill_global_mutex while calling the rfkill callbacks, and rfkill_unregister() also acquires rfkill_global_mutex before cleanup. Therefore, rfkill_unregister() will wait for any ongoing callback to complete before proceeding, and device_del() is only called after rfkill_unregister() returns, preventing any use-after-free.  The similar lock ordering in nfc_register_device() (device_lock -> rfkill_global_mutex via rfkill_register) is safe because during registration the device is not yet in rfkill_list, so no concurrent rfkill operations can occur on this device.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71093",
                                "url": "https://ubuntu.com/security/CVE-2025-71093",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  e1000: fix OOB in e1000_tbi_should_accept()  In e1000_tbi_should_accept() we read the last byte of the frame via 'data[length - 1]' to evaluate the TBI workaround. If the descriptor- reported length is zero or larger than the actual RX buffer size, this read goes out of bounds and can hit unrelated slab objects. The issue is observed from the NAPI receive path (e1000_clean_rx_irq):  ================================================================== BUG: KASAN: slab-out-of-bounds in e1000_tbi_should_accept+0x610/0x790 Read of size 1 at addr ffff888014114e54 by task sshd/363  CPU: 0 PID: 363 Comm: sshd Not tainted 5.18.0-rc1 #1 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014 Call Trace:  <IRQ>  dump_stack_lvl+0x5a/0x74  print_address_description+0x7b/0x440  print_report+0x101/0x200  kasan_report+0xc1/0xf0  e1000_tbi_should_accept+0x610/0x790  e1000_clean_rx_irq+0xa8c/0x1110  e1000_clean+0xde2/0x3c10  __napi_poll+0x98/0x380  net_rx_action+0x491/0xa20  __do_softirq+0x2c9/0x61d  do_softirq+0xd1/0x120  </IRQ>  <TASK>  __local_bh_enable_ip+0xfe/0x130  ip_finish_output2+0x7d5/0xb00  __ip_queue_xmit+0xe24/0x1ab0  __tcp_transmit_skb+0x1bcb/0x3340  tcp_write_xmit+0x175d/0x6bd0  __tcp_push_pending_frames+0x7b/0x280  tcp_sendmsg_locked+0x2e4f/0x32d0  tcp_sendmsg+0x24/0x40  sock_write_iter+0x322/0x430  vfs_write+0x56c/0xa60  ksys_write+0xd1/0x190  do_syscall_64+0x43/0x90  entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x7f511b476b10 Code: 73 01 c3 48 8b 0d 88 d3 2b 00 f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 83 3d f9 2b 2c 00 00 75 10 b8 01 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 31 c3 48 83 ec 08 e8 8e 9b 01 00 48 89 04 24 RSP: 002b:00007ffc9211d4e8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 0000000000004024 RCX: 00007f511b476b10 RDX: 0000000000004024 RSI: 0000559a9385962c RDI: 0000000000000003 RBP: 0000559a9383a400 R08: fffffffffffffff0 R09: 0000000000004f00 R10: 0000000000000070 R11: 0000000000000246 R12: 0000000000000000 R13: 00007ffc9211d57f R14: 0000559a9347bde7 R15: 0000000000000003  </TASK> Allocated by task 1:  __kasan_krealloc+0x131/0x1c0  krealloc+0x90/0xc0  add_sysfs_param+0xcb/0x8a0  kernel_add_sysfs_param+0x81/0xd4  param_sysfs_builtin+0x138/0x1a6  param_sysfs_init+0x57/0x5b  do_one_initcall+0x104/0x250  do_initcall_level+0x102/0x132  do_initcalls+0x46/0x74  kernel_init_freeable+0x28f/0x393  kernel_init+0x14/0x1a0  ret_from_fork+0x22/0x30 The buggy address belongs to the object at ffff888014114000  which belongs to the cache kmalloc-2k of size 2048 The buggy address is located 1620 bytes to the right of  2048-byte region [ffff888014114000, ffff888014114800] The buggy address belongs to the physical page: page:ffffea0000504400 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x14110 head:ffffea0000504400 order:3 compound_mapcount:0 compound_pincount:0 flags: 0x100000000010200(slab|head|node=0|zone=1) raw: 0100000000010200 0000000000000000 dead000000000001 ffff888013442000 raw: 0000000000000000 0000000000080008 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected ==================================================================  This happens because the TBI check unconditionally dereferences the last byte without validating the reported length first:  \tu8 last_byte = *(data + length - 1);  Fix by rejecting the frame early if the length is zero, or if it exceeds adapter->rx_buffer_len. This preserves the TBI workaround semantics for valid frames and prevents touching memory beyond the RX buffer.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71084",
                                "url": "https://ubuntu.com/security/CVE-2025-71084",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/cm: Fix leaking the multicast GID table reference  If the CM ID is destroyed while the CM event for multicast creating is still queued the cancel_work_sync() will prevent the work from running which also prevents destroying the ah_attr. This leaks a refcount and triggers a WARN:     GID entry ref leak for dev syz1 index 2 ref=573    WARNING: CPU: 1 PID: 655 at drivers/infiniband/core/cache.c:809 release_gid_table drivers/infiniband/core/cache.c:806 [inline]    WARNING: CPU: 1 PID: 655 at drivers/infiniband/core/cache.c:809 gid_table_release_one+0x284/0x3cc drivers/infiniband/core/cache.c:886  Destroy the ah_attr after canceling the work, it is safe to call this twice.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71096",
                                "url": "https://ubuntu.com/security/CVE-2025-71096",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly  The netlink response for RDMA_NL_LS_OP_IP_RESOLVE should always have a LS_NLA_TYPE_DGID attribute, it is invalid if it does not.  Use the nl parsing logic properly and call nla_parse_deprecated() to fill the nlattrs array and then directly index that array to get the data for the DGID. Just fail if it is NULL.  Remove the for loop searching for the nla, and squash the validation and parsing into one function.  Fixes an uninitialized read from the stack triggered by userspace if it does not provide the DGID to a kernel initiated RDMA_NL_LS_OP_IP_RESOLVE query.      BUG: KMSAN: uninit-value in hex_byte_pack include/linux/hex.h:13 [inline]     BUG: KMSAN: uninit-value in ip6_string+0xef4/0x13a0 lib/vsprintf.c:1490      hex_byte_pack include/linux/hex.h:13 [inline]      ip6_string+0xef4/0x13a0 lib/vsprintf.c:1490      ip6_addr_string+0x18a/0x3e0 lib/vsprintf.c:1509      ip_addr_string+0x245/0xee0 lib/vsprintf.c:1633      pointer+0xc09/0x1bd0 lib/vsprintf.c:2542      vsnprintf+0xf8a/0x1bd0 lib/vsprintf.c:2930      vprintk_store+0x3ae/0x1530 kernel/printk/printk.c:2279      vprintk_emit+0x307/0xcd0 kernel/printk/printk.c:2426      vprintk_default+0x3f/0x50 kernel/printk/printk.c:2465      vprintk+0x36/0x50 kernel/printk/printk_safe.c:82      _printk+0x17e/0x1b0 kernel/printk/printk.c:2475      ib_nl_process_good_ip_rsep drivers/infiniband/core/addr.c:128 [inline]      ib_nl_handle_ip_res_resp+0x963/0x9d0 drivers/infiniband/core/addr.c:141      rdma_nl_rcv_msg drivers/infiniband/core/netlink.c:-1 [inline]      rdma_nl_rcv_skb drivers/infiniband/core/netlink.c:239 [inline]      rdma_nl_rcv+0xefa/0x11c0 drivers/infiniband/core/netlink.c:259      netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]      netlink_unicast+0xf04/0x12b0 net/netlink/af_netlink.c:1346      netlink_sendmsg+0x10b3/0x1250 net/netlink/af_netlink.c:1896      sock_sendmsg_nosec net/socket.c:714 [inline]      __sock_sendmsg+0x333/0x3d0 net/socket.c:729      ____sys_sendmsg+0x7e0/0xd80 net/socket.c:2617      ___sys_sendmsg+0x271/0x3b0 net/socket.c:2671      __sys_sendmsg+0x1aa/0x300 net/socket.c:2703      __compat_sys_sendmsg net/compat.c:346 [inline]      __do_compat_sys_sendmsg net/compat.c:353 [inline]      __se_compat_sys_sendmsg net/compat.c:350 [inline]      __ia32_compat_sys_sendmsg+0xa4/0x100 net/compat.c:350      ia32_sys_call+0x3f6c/0x4310 arch/x86/include/generated/asm/syscalls_32.h:371      do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline]      __do_fast_syscall_32+0xb0/0x150 arch/x86/entry/syscall_32.c:306      do_fast_syscall_32+0x38/0x80 arch/x86/entry/syscall_32.c:331      do_SYSENTER_32+0x1f/0x30 arch/x86/entry/syscall_32.c:3",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71136",
                                "url": "https://ubuntu.com/security/CVE-2025-71136",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: adv7842: Avoid possible out-of-bounds array accesses in adv7842_cp_log_status()  It's possible for cp_read() and hdmi_read() to return -EIO. Those values are further used as indexes for accessing arrays.  Fix that by checking return values where it's needed.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71133",
                                "url": "https://ubuntu.com/security/CVE-2025-71133",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  RDMA/irdma: avoid invalid read in irdma_net_event  irdma_net_event() should not dereference anything from \"neigh\" (alias \"ptr\") until it has checked that the event is NETEVENT_NEIGH_UPDATE. Other events come with different structures pointed to by \"ptr\" and they may be smaller than struct neighbour.  Move the read of neigh->dev under the NETEVENT_NEIGH_UPDATE case.  The bug is mostly harmless, but it triggers KASAN on debug kernels:   BUG: KASAN: stack-out-of-bounds in irdma_net_event+0x32e/0x3b0 [irdma]  Read of size 8 at addr ffffc900075e07f0 by task kworker/27:2/542554   CPU: 27 PID: 542554 Comm: kworker/27:2 Kdump: loaded Not tainted 5.14.0-630.el9.x86_64+debug #1  Hardware name: [...]  Workqueue: events rt6_probe_deferred  Call Trace:   <IRQ>   dump_stack_lvl+0x60/0xb0   print_address_description.constprop.0+0x2c/0x3f0   print_report+0xb4/0x270   kasan_report+0x92/0xc0   irdma_net_event+0x32e/0x3b0 [irdma]   notifier_call_chain+0x9e/0x180   atomic_notifier_call_chain+0x5c/0x110   rt6_do_redirect+0xb91/0x1080   tcp_v6_err+0xe9b/0x13e0   icmpv6_notify+0x2b2/0x630   ndisc_redirect_rcv+0x328/0x530   icmpv6_rcv+0xc16/0x1360   ip6_protocol_deliver_rcu+0xb84/0x12e0   ip6_input_finish+0x117/0x240   ip6_input+0xc4/0x370   ipv6_rcv+0x420/0x7d0   __netif_receive_skb_one_core+0x118/0x1b0   process_backlog+0xd1/0x5d0   __napi_poll.constprop.0+0xa3/0x440   net_rx_action+0x78a/0xba0   handle_softirqs+0x2d4/0x9c0   do_softirq+0xad/0xe0   </IRQ>",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71086",
                                "url": "https://ubuntu.com/security/CVE-2025-71086",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: rose: fix invalid array index in rose_kill_by_device()  rose_kill_by_device() collects sockets into a local array[] and then iterates over them to disconnect sockets bound to a device being brought down.  The loop mistakenly indexes array[cnt] instead of array[i]. For cnt < ARRAY_SIZE(array), this reads an uninitialized entry; for cnt == ARRAY_SIZE(array), it is an out-of-bounds read. Either case can lead to an invalid socket pointer dereference and also leaks references taken via sock_hold().  Fix the index to use i.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71097",
                                "url": "https://ubuntu.com/security/CVE-2025-71097",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: Fix reference count leak when using error routes with nexthop objects  When a nexthop object is deleted, it is marked as dead and then fib_table_flush() is called to flush all the routes that are using the dead nexthop.  The current logic in fib_table_flush() is to only flush error routes (e.g., blackhole) when it is called as part of network namespace dismantle (i.e., with flush_all=true). Therefore, error routes are not flushed when their nexthop object is deleted:   # ip link add name dummy1 up type dummy  # ip nexthop add id 1 dev dummy1  # ip route add 198.51.100.1/32 nhid 1  # ip route add blackhole 198.51.100.2/32 nhid 1  # ip nexthop del id 1  # ip route show  blackhole 198.51.100.2 nhid 1 dev dummy1  As such, they keep holding a reference on the nexthop object which in turn holds a reference on the nexthop device, resulting in a reference count leak:   # ip link del dev dummy1  [   70.516258] unregister_netdevice: waiting for dummy1 to become free. Usage count = 2  Fix by flushing error routes when their nexthop is marked as dead.  IPv6 does not suffer from this problem.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71085",
                                "url": "https://ubuntu.com/security/CVE-2025-71085",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()  There exists a kernel oops caused by a BUG_ON(nhead < 0) at net/core/skbuff.c:2232 in pskb_expand_head(). This bug is triggered as part of the calipso_skbuff_setattr() routine when skb_cow() is passed headroom > INT_MAX (i.e. (int)(skb_headroom(skb) + len_delta) < 0).  The root cause of the bug is due to an implicit integer cast in __skb_cow(). The check (headroom > skb_headroom(skb)) is meant to ensure that delta = headroom - skb_headroom(skb) is never negative, otherwise we will trigger a BUG_ON in pskb_expand_head(). However, if headroom > INT_MAX and delta <= -NET_SKB_PAD, the check passes, delta becomes negative, and pskb_expand_head() is passed a negative value for nhead.  Fix the trigger condition in calipso_skbuff_setattr(). Avoid passing \"negative\" headroom sizes to skb_cow() within calipso_skbuff_setattr() by only using skb_cow() to grow headroom.  PoC: \tUsing `netlabelctl` tool:          netlabelctl map del default         netlabelctl calipso add pass doi:7         netlabelctl map add default address:0::1/128 protocol:calipso,7          Then run the following PoC:          int fd = socket(AF_INET6, SOCK_DGRAM, IPPROTO_UDP);          // setup msghdr         int cmsg_size = 2;         int cmsg_len = 0x60;         struct msghdr msg;         struct sockaddr_in6 dest_addr;         struct cmsghdr * cmsg = (struct cmsghdr *) calloc(1,                         sizeof(struct cmsghdr) + cmsg_len);         msg.msg_name = &dest_addr;         msg.msg_namelen = sizeof(dest_addr);         msg.msg_iov = NULL;         msg.msg_iovlen = 0;         msg.msg_control = cmsg;         msg.msg_controllen = cmsg_len;         msg.msg_flags = 0;          // setup sockaddr         dest_addr.sin6_family = AF_INET6;         dest_addr.sin6_port = htons(31337);         dest_addr.sin6_flowinfo = htonl(31337);         dest_addr.sin6_addr = in6addr_loopback;         dest_addr.sin6_scope_id = 31337;          // setup cmsghdr         cmsg->cmsg_len = cmsg_len;         cmsg->cmsg_level = IPPROTO_IPV6;         cmsg->cmsg_type = IPV6_HOPOPTS;         char * hop_hdr = (char *)cmsg + sizeof(struct cmsghdr);         hop_hdr[1] = 0x9; //set hop size - (0x9 + 1) * 8 = 80          sendmsg(fd, &msg, 0);",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71137",
                                "url": "https://ubuntu.com/security/CVE-2025-71137",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  octeontx2-pf: fix \"UBSAN: shift-out-of-bounds error\"  This patch ensures that the RX ring size (rx_pending) is not set below the permitted length. This avoids UBSAN shift-out-of-bounds errors when users passes small or zero ring sizes via ethtool -G.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71094",
                                "url": "https://ubuntu.com/security/CVE-2025-71094",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: asix: validate PHY address before use  The ASIX driver reads the PHY address from the USB device via asix_read_phy_addr(). A malicious or faulty device can return an invalid address (>= PHY_MAX_ADDR), which causes a warning in mdiobus_get_phy():    addr 207 out of range   WARNING: drivers/net/phy/mdio_bus.c:76  Validate the PHY address in asix_read_phy_addr() and remove the now-redundant check in ax88172a.c.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71132",
                                "url": "https://ubuntu.com/security/CVE-2025-71132",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smc91x: fix broken irq-context in PREEMPT_RT  When smc91x.c is built with PREEMPT_RT, the following splat occurs in FVP_RevC:  [   13.055000] smc91x LNRO0003:00 eth0: link up, 10Mbps, half-duplex, lpa 0x0000 [   13.062137] BUG: workqueue leaked atomic, lock or RCU: kworker/2:1[106] [   13.062137]      preempt=0x00000000 lock=0->0 RCU=0->1 workfn=mld_ifc_work [   13.062266] C ** replaying previous printk message ** [   13.062266] CPU: 2 UID: 0 PID: 106 Comm: kworker/2:1 Not tainted 6.18.0-dirty #179 PREEMPT_{RT,(full)} [   13.062353] Hardware name:  , BIOS [   13.062382] Workqueue: mld mld_ifc_work [   13.062469] Call trace: [   13.062494]  show_stack+0x24/0x40 (C) [   13.062602]  __dump_stack+0x28/0x48 [   13.062710]  dump_stack_lvl+0x7c/0xb0 [   13.062818]  dump_stack+0x18/0x34 [   13.062926]  process_scheduled_works+0x294/0x450 [   13.063043]  worker_thread+0x260/0x3d8 [   13.063124]  kthread+0x1c4/0x228 [   13.063235]  ret_from_fork+0x10/0x20  This happens because smc_special_trylock() disables IRQs even on PREEMPT_RT, but smc_special_unlock() does not restore IRQs on PREEMPT_RT. The reason is that smc_special_unlock() calls spin_unlock_irqrestore(), and rcu_read_unlock_bh() in __dev_queue_xmit() cannot invoke rcu_read_unlock() through __local_bh_enable_ip() when current->softirq_disable_cnt becomes zero.  To address this issue, replace smc_special_trylock() with spin_trylock_irqsave().",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71154",
                                "url": "https://ubuntu.com/security/CVE-2025-71154",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: rtl8150: fix memory leak on usb_submit_urb() failure  In async_set_registers(), when usb_submit_urb() fails, the allocated   async_req structure and URB are not freed, causing a memory leak.    The completion callback async_set_reg_cb() is responsible for freeing   these allocations, but it is only called after the URB is successfully   submitted and completes (successfully or with error). If submission   fails, the callback never runs and the memory is leaked.    Fix this by freeing both the URB and the request structure in the error   path when usb_submit_urb() fails.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71091",
                                "url": "https://ubuntu.com/security/CVE-2025-71091",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  team: fix check for port enabled in team_queue_override_port_prio_changed()  There has been a syzkaller bug reported recently with the following trace:  list_del corruption, ffff888058bea080->prev is LIST_POISON2 (dead000000000122) ------------[ cut here ]------------ kernel BUG at lib/list_debug.c:59! Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI CPU: 3 UID: 0 PID: 21246 Comm: syz.0.2928 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:__list_del_entry_valid_or_report+0x13e/0x200 lib/list_debug.c:59 Code: 48 c7 c7 e0 71 f0 8b e8 30 08 ef fc 90 0f 0b 48 89 ef e8 a5 02 55 fd 48 89 ea 48 89 de 48 c7 c7 40 72 f0 8b e8 13 08 ef fc 90 <0f> 0b 48 89 ef e8 88 02 55 fd 48 89 ea 48 b8 00 00 00 00 00 fc ff RSP: 0018:ffffc9000d49f370 EFLAGS: 00010286 RAX: 000000000000004e RBX: ffff888058bea080 RCX: ffffc9002817d000 RDX: 0000000000000000 RSI: ffffffff819becc6 RDI: 0000000000000005 RBP: dead000000000122 R08: 0000000000000005 R09: 0000000000000000 R10: 0000000080000000 R11: 0000000000000001 R12: ffff888039e9c230 R13: ffff888058bea088 R14: ffff888058bea080 R15: ffff888055461480 FS:  00007fbbcfe6f6c0(0000) GS:ffff8880d6d0a000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000000110c3afcb0 CR3: 00000000382c7000 CR4: 0000000000352ef0 Call Trace:  <TASK>  __list_del_entry_valid include/linux/list.h:132 [inline]  __list_del_entry include/linux/list.h:223 [inline]  list_del_rcu include/linux/rculist.h:178 [inline]  __team_queue_override_port_del drivers/net/team/team_core.c:826 [inline]  __team_queue_override_port_del drivers/net/team/team_core.c:821 [inline]  team_queue_override_port_prio_changed drivers/net/team/team_core.c:883 [inline]  team_priority_option_set+0x171/0x2f0 drivers/net/team/team_core.c:1534  team_option_set drivers/net/team/team_core.c:376 [inline]  team_nl_options_set_doit+0x8ae/0xe60 drivers/net/team/team_core.c:2653  genl_family_rcv_msg_doit+0x209/0x2f0 net/netlink/genetlink.c:1115  genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]  genl_rcv_msg+0x55c/0x800 net/netlink/genetlink.c:1210  netlink_rcv_skb+0x158/0x420 net/netlink/af_netlink.c:2552  genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219  netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]  netlink_unicast+0x5aa/0x870 net/netlink/af_netlink.c:1346  netlink_sendmsg+0x8c8/0xdd0 net/netlink/af_netlink.c:1896  sock_sendmsg_nosec net/socket.c:727 [inline]  __sock_sendmsg net/socket.c:742 [inline]  ____sys_sendmsg+0xa98/0xc70 net/socket.c:2630  ___sys_sendmsg+0x134/0x1d0 net/socket.c:2684  __sys_sendmsg+0x16d/0x220 net/socket.c:2716  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xcd/0xfa0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  The problem is in this flow: 1) Port is enabled, queue_id != 0, in qom_list 2) Port gets disabled         -> team_port_disable()         -> team_queue_override_port_del()         -> del (removed from list) 3) Port is disabled, queue_id != 0, not in any list 4) Priority changes         -> team_queue_override_port_prio_changed()         -> checks: port disabled && queue_id != 0         -> calls del - hits the BUG as it is removed already  To fix this, change the check in team_queue_override_port_prio_changed() so it returns early if port is not enabled.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71098",
                                "url": "https://ubuntu.com/security/CVE-2025-71098",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ip6_gre: make ip6gre_header() robust  Over the years, syzbot found many ways to crash the kernel in ip6gre_header() [1].  This involves team or bonding drivers ability to dynamically change their dev->needed_headroom and/or dev->hard_header_len  In this particular crash mld_newpack() allocated an skb with a too small reserve/headroom, and by the time mld_sendpack() was called, syzbot managed to attach an ip6gre device.  [1] skbuff: skb_under_panic: text:ffffffff8a1d69a8 len:136 put:40 head:ffff888059bc7000 data:ffff888059bc6fe8 tail:0x70 end:0x6c0 dev:team0 ------------[ cut here ]------------  kernel BUG at net/core/skbuff.c:213 !  <TASK>   skb_under_panic net/core/skbuff.c:223 [inline]   skb_push+0xc3/0xe0 net/core/skbuff.c:2641   ip6gre_header+0xc8/0x790 net/ipv6/ip6_gre.c:1371   dev_hard_header include/linux/netdevice.h:3436 [inline]   neigh_connected_output+0x286/0x460 net/core/neighbour.c:1618   neigh_output include/net/neighbour.h:556 [inline]   ip6_finish_output2+0xfb3/0x1480 net/ipv6/ip6_output.c:136  __ip6_finish_output net/ipv6/ip6_output.c:-1 [inline]   ip6_finish_output+0x234/0x7d0 net/ipv6/ip6_output.c:220   NF_HOOK_COND include/linux/netfilter.h:307 [inline]   ip6_output+0x340/0x550 net/ipv6/ip6_output.c:247   NF_HOOK+0x9e/0x380 include/linux/netfilter.h:318   mld_sendpack+0x8d4/0xe60 net/ipv6/mcast.c:1855   mld_send_cr net/ipv6/mcast.c:2154 [inline]   mld_ifc_work+0x83e/0xd60 net/ipv6/mcast.c:2693",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71082",
                                "url": "https://ubuntu.com/security/CVE-2025-71082",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: btusb: revert use of devm_kzalloc in btusb  This reverts commit 98921dbd00c4e (\"Bluetooth: Use devm_kzalloc in btusb.c file\").  In btusb_probe(), we use devm_kzalloc() to allocate the btusb data. This ties the lifetime of all the btusb data to the binding of a driver to one interface, INTF. In a driver that binds to other interfaces, ISOC and DIAG, this is an accident waiting to happen.  The issue is revealed in btusb_disconnect(), where calling usb_driver_release_interface(&btusb_driver, data->intf) will have devm free the data that is also being used by the other interfaces of the driver that may not be released yet.  To fix this, revert the use of devm and go back to freeing memory explicitly.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71131",
                                "url": "https://ubuntu.com/security/CVE-2025-71131",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: seqiv - Do not use req->iv after crypto_aead_encrypt  As soon as crypto_aead_encrypt is called, the underlying request may be freed by an asynchronous completion.  Thus dereferencing req->iv after it returns is invalid.  Instead of checking req->iv against info, create a new variable unaligned_info and use it for that purpose instead.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71087",
                                "url": "https://ubuntu.com/security/CVE-2025-71087",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iavf: fix off-by-one issues in iavf_config_rss_reg()  There are off-by-one bugs when configuring RSS hash key and lookup table, causing out-of-bounds reads to memory [1] and out-of-bounds writes to device registers.  Before commit 43a3d9ba34c9 (\"i40evf: Allow PF driver to configure RSS\"), the loop upper bounds were:     i <= I40E_VFQF_{HKEY,HLUT}_MAX_INDEX which is safe since the value is the last valid index.  That commit changed the bounds to:     i <= adapter->rss_{key,lut}_size / 4 where `rss_{key,lut}_size / 4` is the number of dwords, so the last valid index is `(rss_{key,lut}_size / 4) - 1`. Therefore, using `<=` accesses one element past the end.  Fix the issues by using `<` instead of `<=`, ensuring we do not exceed the bounds.  [1] KASAN splat about rss_key_size off-by-one   BUG: KASAN: slab-out-of-bounds in iavf_config_rss+0x619/0x800   Read of size 4 at addr ffff888102c50134 by task kworker/u8:6/63    CPU: 0 UID: 0 PID: 63 Comm: kworker/u8:6 Not tainted 6.18.0-rc2-enjuk-tnguy-00378-g3005f5b77652-dirty #156 PREEMPT(voluntary)   Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014   Workqueue: iavf iavf_watchdog_task   Call Trace:    <TASK>    dump_stack_lvl+0x6f/0xb0    print_report+0x170/0x4f3    kasan_report+0xe1/0x1a0    iavf_config_rss+0x619/0x800    iavf_watchdog_task+0x2be7/0x3230    process_one_work+0x7fd/0x1420    worker_thread+0x4d1/0xd40    kthread+0x344/0x660    ret_from_fork+0x249/0x320    ret_from_fork_asm+0x1a/0x30    </TASK>    Allocated by task 63:    kasan_save_stack+0x30/0x50    kasan_save_track+0x14/0x30    __kasan_kmalloc+0x7f/0x90    __kmalloc_noprof+0x246/0x6f0    iavf_watchdog_task+0x28fc/0x3230    process_one_work+0x7fd/0x1420    worker_thread+0x4d1/0xd40    kthread+0x344/0x660    ret_from_fork+0x249/0x320    ret_from_fork_asm+0x1a/0x30    The buggy address belongs to the object at ffff888102c50100    which belongs to the cache kmalloc-64 of size 64   The buggy address is located 0 bytes to the right of    allocated 52-byte region [ffff888102c50100, ffff888102c50134)    The buggy address belongs to the physical page:   page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x102c50   flags: 0x200000000000000(node=0|zone=2)   page_type: f5(slab)   raw: 0200000000000000 ffff8881000418c0 dead000000000122 0000000000000000   raw: 0000000000000000 0000000080200020 00000000f5000000 0000000000000000   page dumped because: kasan: bad access detected    Memory state around the buggy address:    ffff888102c50000: 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc fc    ffff888102c50080: 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc fc   >ffff888102c50100: 00 00 00 00 00 00 04 fc fc fc fc fc fc fc fc fc                                        ^    ffff888102c50180: 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc    ffff888102c50200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71111",
                                "url": "https://ubuntu.com/security/CVE-2025-71111",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hwmon: (w83791d) Convert macros to functions to avoid TOCTOU  The macro FAN_FROM_REG evaluates its arguments multiple times. When used in lockless contexts involving shared driver data, this leads to Time-of-Check to Time-of-Use (TOCTOU) race conditions, potentially causing divide-by-zero errors.  Convert the macro to a static function. This guarantees that arguments are evaluated only once (pass-by-value), preventing the race conditions.  Additionally, in store_fan_div, move the calculation of the minimum limit inside the update lock. This ensures that the read-modify-write sequence operates on consistent data.  Adhere to the principle of minimal changes by only converting macros that evaluate arguments multiple times and are used in lockless contexts.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68814",
                                "url": "https://ubuntu.com/security/CVE-2025-68814",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  io_uring: fix filename leak in __io_openat_prep()   __io_openat_prep() allocates a struct filename using getname(). However, for the condition of the file being installed in the fixed file table as well as having O_CLOEXEC flag set, the function returns early. At that point, the request doesn't have REQ_F_NEED_CLEANUP flag set. Due to this, the memory for the newly allocated struct filename is not cleaned up, causing a memory leak.  Fix this by setting the REQ_F_NEED_CLEANUP for the request just after the successful getname() call, so that when the request is torn down, the filename will be cleaned up, along with other resources needing cleanup.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68788",
                                "url": "https://ubuntu.com/security/CVE-2025-68788",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fsnotify: do not generate ACCESS/MODIFY events on child for special files  inotify/fanotify do not allow users with no read access to a file to subscribe to events (e.g. IN_ACCESS/IN_MODIFY), but they do allow the same user to subscribe for watching events on children when the user has access to the parent directory (e.g. /dev).  Users with no read access to a file but with read access to its parent directory can still stat the file and see if it was accessed/modified via atime/mtime change.  The same is not true for special files (e.g. /dev/null). Users will not generally observe atime/mtime changes when other users read/write to special files, only when someone sets atime/mtime via utimensat().  Align fsnotify events with this stat behavior and do not generate ACCESS/MODIFY events to parent watchers on read/write of special files. The events are still generated to parent watchers on utimensat(). This closes some side-channels that could be possibly used for information exfiltration [1].  [1] https://snee.la/pdf/pubs/file-notification-attacks.pdf",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71125",
                                "url": "https://ubuntu.com/security/CVE-2025-71125",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tracing: Do not register unsupported perf events  Synthetic events currently do not have a function to register perf events. This leads to calling the tracepoint register functions with a NULL function pointer which triggers:   ------------[ cut here ]------------  WARNING: kernel/tracepoint.c:175 at tracepoint_add_func+0x357/0x370, CPU#2: perf/2272  Modules linked in: kvm_intel kvm irqbypass  CPU: 2 UID: 0 PID: 2272 Comm: perf Not tainted 6.18.0-ftest-11964-ge022764176fc-dirty #323 PREEMPTLAZY  Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.17.0-debian-1.17.0-1 04/01/2014  RIP: 0010:tracepoint_add_func+0x357/0x370  Code: 28 9c e8 4c 0b f5 ff eb 0f 4c 89 f7 48 c7 c6 80 4d 28 9c e8 ab 89 f4 ff 31 c0 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc cc cc cc cc <0f> 0b 49 c7 c6 ea ff ff ff e9 ee fe ff ff 0f 0b e9 f9 fe ff ff 0f  RSP: 0018:ffffabc0c44d3c40 EFLAGS: 00010246  RAX: 0000000000000001 RBX: ffff9380aa9e4060 RCX: 0000000000000000  RDX: 000000000000000a RSI: ffffffff9e1d4a98 RDI: ffff937fcf5fd6c8  RBP: 0000000000000001 R08: 0000000000000007 R09: ffff937fcf5fc780  R10: 0000000000000003 R11: ffffffff9c193910 R12: 000000000000000a  R13: ffffffff9e1e5888 R14: 0000000000000000 R15: ffffabc0c44d3c78  FS:  00007f6202f5f340(0000) GS:ffff93819f00f000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 000055d3162281a8 CR3: 0000000106a56003 CR4: 0000000000172ef0  Call Trace:   <TASK>   tracepoint_probe_register+0x5d/0x90   synth_event_reg+0x3c/0x60   perf_trace_event_init+0x204/0x340   perf_trace_init+0x85/0xd0   perf_tp_event_init+0x2e/0x50   perf_try_init_event+0x6f/0x230   ? perf_event_alloc+0x4bb/0xdc0   perf_event_alloc+0x65a/0xdc0   __se_sys_perf_event_open+0x290/0x9f0   do_syscall_64+0x93/0x7b0   ? entry_SYSCALL_64_after_hwframe+0x76/0x7e   ? trace_hardirqs_off+0x53/0xc0   entry_SYSCALL_64_after_hwframe+0x76/0x7e  Instead, have the code return -ENODEV, which doesn't warn and has perf error out with:   # perf record -e synthetic:futex_wait Error: The sys_perf_event_open() syscall returned with 19 (No such device) for event (synthetic:futex_wait). \"dmesg | grep -i perf\" may provide additional information.  Ideally perf should support synthetic events, but for now just fix the warning. The support can come later.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71104",
                                "url": "https://ubuntu.com/security/CVE-2025-71104",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV timer  When advancing the target expiration for the guest's APIC timer in periodic mode, set the expiration to \"now\" if the target expiration is in the past (similar to what is done in update_target_expiration()).  Blindly adding the period to the previous target expiration can result in KVM generating a practically unbounded number of hrtimer IRQs due to programming an expired timer over and over.  In extreme scenarios, e.g. if userspace pauses/suspends a VM for an extended duration, this can even cause hard lockups in the host.  Currently, the bug only affects Intel CPUs when using the hypervisor timer (HV timer), a.k.a. the VMX preemption timer.  Unlike the software timer, a.k.a. hrtimer, which KVM keeps running even on exits to userspace, the HV timer only runs while the guest is active.  As a result, if the vCPU does not run for an extended duration, there will be a huge gap between the target expiration and the current time the vCPU resumes running. Because the target expiration is incremented by only one period on each timer expiration, this leads to a series of timer expirations occurring rapidly after the vCPU/VM resumes.  More critically, when the vCPU first triggers a periodic HV timer expiration after resuming, advancing the expiration by only one period will result in a target expiration in the past.  As a result, the delta may be calculated as a negative value.  When the delta is converted into an absolute value (tscdeadline is an unsigned u64), the resulting value can overflow what the HV timer is capable of programming.  I.e. the large value will exceed the VMX Preemption Timer's maximum bit width of cpu_preemption_timer_multi + 32, and thus cause KVM to switch from the HV timer to the software timer (hrtimers).  After switching to the software timer, periodic timer expiration callbacks may be executed consecutively within a single clock interrupt handler, because hrtimers honors KVM's request for an expiration in the past and immediately re-invokes KVM's callback after reprogramming.  And because the interrupt handler runs with IRQs disabled, restarting KVM's hrtimer over and over until the target expiration is advanced to \"now\" can result in a hard lockup.  E.g. the following hard lockup was triggered in the host when running a Windows VM (only relevant because it used the APIC timer in periodic mode) after resuming the VM from a long suspend (in the host).    NMI watchdog: Watchdog detected hard LOCKUP on cpu 45   ...   RIP: 0010:advance_periodic_target_expiration+0x4d/0x80 [kvm]   ...   RSP: 0018:ff4f88f5d98d8ef0 EFLAGS: 00000046   RAX: fff0103f91be678e RBX: fff0103f91be678e RCX: 00843a7d9e127bcc   RDX: 0000000000000002 RSI: 0052ca4003697505 RDI: ff440d5bfbdbd500   RBP: ff440d5956f99200 R08: ff2ff2a42deb6a84 R09: 000000000002a6c0   R10: 0122d794016332b3 R11: 0000000000000000 R12: ff440db1af39cfc0   R13: ff440db1af39cfc0 R14: ffffffffc0d4a560 R15: ff440db1af39d0f8   FS:  00007f04a6ffd700(0000) GS:ff440db1af380000(0000) knlGS:000000e38a3b8000   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033   CR2: 000000d5651feff8 CR3: 000000684e038002 CR4: 0000000000773ee0   PKRU: 55555554   Call Trace:    <IRQ>    apic_timer_fn+0x31/0x50 [kvm]    __hrtimer_run_queues+0x100/0x280    hrtimer_interrupt+0x100/0x210    ? ttwu_do_wakeup+0x19/0x160    smp_apic_timer_interrupt+0x6a/0x130    apic_timer_interrupt+0xf/0x20    </IRQ>  Moreover, if the suspend duration of the virtual machine is not long enough to trigger a hard lockup in this scenario, since commit 98c25ead5eda (\"KVM: VMX: Move preemption timer <=> hrtimer dance to common x86\"), KVM will continue using the software timer until the guest reprograms the APIC timer in some way.  Since the periodic timer does not require frequent APIC timer register programming, the guest may continue to use the software timer in ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71116",
                                "url": "https://ubuntu.com/security/CVE-2025-71116",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: make decode_pool() more resilient against corrupted osdmaps  If the osdmap is (maliciously) corrupted such that the encoded length of ceph_pg_pool envelope is less than what is expected for a particular encoding version, out-of-bounds reads may ensue because the only bounds check that is there is based on that length value.  This patch adds explicit bounds checks for each field that is decoded or skipped.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71121",
                                "url": "https://ubuntu.com/security/CVE-2025-71121",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  parisc: Do not reprogram affinitiy on ASP chip  The ASP chip is a very old variant of the GSP chip and is used e.g. in HP 730 workstations. When trying to reprogram the affinity it will crash with a HPMC as the relevant registers don't seem to be at the usual location.  Let's avoid the crash by checking the sversion. Also note, that reprogramming isn't necessary either, as the HP730 is a just a single-CPU machine.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71102",
                                "url": "https://ubuntu.com/security/CVE-2025-71102",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scs: fix a wrong parameter in __scs_magic  __scs_magic() needs a 'void *' variable, but a 'struct task_struct *' is given.  'task_scs(tsk)' is the starting address of the task's shadow call stack, and '__scs_magic(task_scs(tsk))' is the end address of the task's shadow call stack.  Here should be '__scs_magic(task_scs(tsk))'.  The user-visible effect of this bug is that when CONFIG_DEBUG_STACK_USAGE is enabled, the shadow call stack usage checking function (scs_check_usage) would scan an incorrect memory range.  This could lead  1. **Inaccurate stack usage reporting**: The function would calculate    wrong usage statistics for the shadow call stack, potentially showing    incorrect value in kmsg.  2. **Potential kernel crash**: If the value of __scs_magic(tsk)is    greater than that of __scs_magic(task_scs(tsk)), the for loop may    access unmapped memory, potentially causing a kernel panic.  However,    this scenario is unlikely because task_struct is allocated via the slab    allocator (which typically returns lower addresses), while the shadow    call stack returned by task_scs(tsk) is allocated via vmalloc(which    typically returns higher addresses).  However, since this is purely a debugging feature (CONFIG_DEBUG_STACK_USAGE), normal production systems should be not unaffected.  The bug only impacts developers and testers who are actively debugging stack usage with this configuration enabled.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68804",
                                "url": "https://ubuntu.com/security/CVE-2025-68804",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/chrome: cros_ec_ishtp: Fix UAF after unbinding driver  After unbinding the driver, another kthread `cros_ec_console_log_work` is still accessing the device, resulting an UAF and crash.  The driver doesn't unregister the EC device in .remove() which should shutdown sub-devices synchronously.  Fix it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68771",
                                "url": "https://ubuntu.com/security/CVE-2025-68771",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ocfs2: fix kernel BUG in ocfs2_find_victim_chain  syzbot reported a kernel BUG in ocfs2_find_victim_chain() because the `cl_next_free_rec` field of the allocation chain list (next free slot in the chain list) is 0, triggring the BUG_ON(!cl->cl_next_free_rec) condition in ocfs2_find_victim_chain() and panicking the kernel.  To fix this, an if condition is introduced in ocfs2_claim_suballoc_bits(), just before calling ocfs2_find_victim_chain(), the code block in it being executed when either of the following conditions is true:  1. `cl_next_free_rec` is equal to 0, indicating that there are no free chains in the allocation chain list 2. `cl_next_free_rec` is greater than `cl_count` (the total number of chains in the allocation chain list)  Either of them being true is indicative of the fact that there are no chains left for usage.  This is addressed using ocfs2_error(), which prints the error log for debugging purposes, rather than panicking the kernel.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68808",
                                "url": "https://ubuntu.com/security/CVE-2025-68808",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: vidtv: initialize local pointers upon transfer of memory ownership  vidtv_channel_si_init() creates a temporary list (program, service, event) and ownership of the memory itself is transferred to the PAT/SDT/EIT tables through vidtv_psi_pat_program_assign(), vidtv_psi_sdt_service_assign(), vidtv_psi_eit_event_assign().  The problem here is that the local pointer where the memory ownership transfer was completed is not initialized to NULL. This causes the vidtv_psi_pmt_create_sec_for_each_pat_entry() function to fail, and in the flow that jumps to free_eit, the memory that was freed by vidtv_psi_*_table_destroy() can be accessed again by vidtv_psi_*_event_destroy() due to the uninitialized local pointer, so it is freed once again.  Therefore, to prevent use-after-free and double-free vulnerability, local pointers must be initialized to NULL when transferring memory ownership.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68769",
                                "url": "https://ubuntu.com/security/CVE-2025-68769",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: fix return value of f2fs_recover_fsync_data()  With below scripts, it will trigger panic in f2fs:  mkfs.f2fs -f /dev/vdd mount /dev/vdd /mnt/f2fs touch /mnt/f2fs/foo sync echo 111 >> /mnt/f2fs/foo f2fs_io fsync /mnt/f2fs/foo f2fs_io shutdown 2 /mnt/f2fs umount /mnt/f2fs mount -o ro,norecovery /dev/vdd /mnt/f2fs or mount -o ro,disable_roll_forward /dev/vdd /mnt/f2fs  F2FS-fs (vdd): f2fs_recover_fsync_data: recovery fsync data, check_only: 0 F2FS-fs (vdd): Mounted with checkpoint version = 7f5c361f F2FS-fs (vdd): Stopped filesystem due to reason: 0 F2FS-fs (vdd): f2fs_recover_fsync_data: recovery fsync data, check_only: 1 Filesystem f2fs get_tree() didn't set fc->root, returned 1 ------------[ cut here ]------------ kernel BUG at fs/super.c:1761! Oops: invalid opcode: 0000 [#1] SMP PTI CPU: 3 UID: 0 PID: 722 Comm: mount Not tainted 6.18.0-rc2+ #721 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 RIP: 0010:vfs_get_tree.cold+0x18/0x1a Call Trace:  <TASK>  fc_mount+0x13/0xa0  path_mount+0x34e/0xc50  __x64_sys_mount+0x121/0x150  do_syscall_64+0x84/0x800  entry_SYSCALL_64_after_hwframe+0x76/0x7e RIP: 0033:0x7fa6cc126cfe  The root cause is we missed to handle error number returned from f2fs_recover_fsync_data() when mounting image w/ ro,norecovery or ro,disable_roll_forward mount option, result in returning a positive error number to vfs_get_tree(), fix it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71069",
                                "url": "https://ubuntu.com/security/CVE-2025-71069",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  f2fs: invalidate dentry cache on failed whiteout creation  F2FS can mount filesystems with corrupted directory depth values that get runtime-clamped to MAX_DIR_HASH_DEPTH. When RENAME_WHITEOUT operations are performed on such directories, f2fs_rename performs directory modifications (updating target entry and deleting source entry) before attempting to add the whiteout entry via f2fs_add_link.  If f2fs_add_link fails due to the corrupted directory structure, the function returns an error to VFS, but the partial directory modifications have already been committed to disk. VFS assumes the entire rename operation failed and does not update the dentry cache, leaving stale mappings.  In the error path, VFS does not call d_move() to update the dentry cache. This results in new_dentry still pointing to the old inode (new_inode) which has already had its i_nlink decremented to zero. The stale cache causes subsequent operations to incorrectly reference the freed inode.  This causes subsequent operations to use cached dentry information that no longer matches the on-disk state. When a second rename targets the same entry, VFS attempts to decrement i_nlink on the stale inode, which may already have i_nlink=0, triggering a WARNING in drop_nlink().  Example sequence: 1. First rename (RENAME_WHITEOUT): file2 → file1    - f2fs updates file1 entry on disk (points to inode 8)    - f2fs deletes file2 entry on disk    - f2fs_add_link(whiteout) fails (corrupted directory)    - Returns error to VFS    - VFS does not call d_move() due to error    - VFS cache still has: file1 → inode 7 (stale!)    - inode 7 has i_nlink=0 (already decremented)  2. Second rename: file3 → file1    - VFS uses stale cache: file1 → inode 7    - Tries to drop_nlink on inode 7 (i_nlink already 0)    - WARNING in drop_nlink()  Fix this by explicitly invalidating old_dentry and new_dentry when f2fs_add_link fails during whiteout creation. This forces VFS to refresh from disk on subsequent operations, ensuring cache consistency even when the rename partially succeeds.  Reproducer: 1. Mount F2FS image with corrupted i_current_depth 2. renameat2(file2, file1, RENAME_WHITEOUT) 3. renameat2(file3, file1, 0) 4. System triggers WARNING in drop_nlink()",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68782",
                                "url": "https://ubuntu.com/security/CVE-2025-68782",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: Reset t_task_cdb pointer in error case  If allocation of cmd->t_task_cdb fails, it remains NULL but is later dereferenced in the 'err' path.  In case of error, reset NULL t_task_cdb value to point at the default fixed-size buffer.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71075",
                                "url": "https://ubuntu.com/security/CVE-2025-71075",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: aic94xx: fix use-after-free in device removal path  The asd_pci_remove() function fails to synchronize with pending tasklets before freeing the asd_ha structure, leading to a potential use-after-free vulnerability.  When a device removal is triggered (via hot-unplug or module unload), race condition can occur.  The fix adds tasklet_kill() before freeing the asd_ha structure, ensuring all scheduled tasklets complete before cleanup proceeds.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68818",
                                "url": "https://ubuntu.com/security/CVE-2025-68818",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: Revert \"scsi: qla2xxx: Perform lockless command completion in abort path\"  This reverts commit 0367076b0817d5c75dfb83001ce7ce5c64d803a9.  The commit being reverted added code to __qla2x00_abort_all_cmds() to call sp->done() without holding a spinlock.  But unlike the older code below it, this new code failed to check sp->cmd_type and just assumed TYPE_SRB, which results in a jump to an invalid pointer in target-mode with TYPE_TGT_CMD:  qla2xxx [0000:65:00.0]-d034:8: qla24xx_do_nack_work create sess success   0000000009f7a79b qla2xxx [0000:65:00.0]-5003:8: ISP System Error - mbx1=1ff5h mbx2=10h   mbx3=0h mbx4=0h mbx5=191h mbx6=0h mbx7=0h. qla2xxx [0000:65:00.0]-d01e:8: -> fwdump no buffer qla2xxx [0000:65:00.0]-f03a:8: qla_target(0): System error async event   0x8002 occurred qla2xxx [0000:65:00.0]-00af:8: Performing ISP error recovery -   ha=0000000058183fda. BUG: kernel NULL pointer dereference, address: 0000000000000000 PF: supervisor instruction fetch in kernel mode PF: error_code(0x0010) - not-present page PGD 0 P4D 0 Oops: 0010 [#1] SMP CPU: 2 PID: 9446 Comm: qla2xxx_8_dpc Tainted: G           O       6.1.133 #1 Hardware name: Supermicro Super Server/X11SPL-F, BIOS 4.2 12/15/2023 RIP: 0010:0x0 Code: Unable to access opcode bytes at 0xffffffffffffffd6. RSP: 0018:ffffc90001f93dc8 EFLAGS: 00010206 RAX: 0000000000000282 RBX: 0000000000000355 RCX: ffff88810d16a000 RDX: ffff88810dbadaa8 RSI: 0000000000080000 RDI: ffff888169dc38c0 RBP: ffff888169dc38c0 R08: 0000000000000001 R09: 0000000000000045 R10: ffffffffa034bdf0 R11: 0000000000000000 R12: ffff88810800bb40 R13: 0000000000001aa8 R14: ffff888100136610 R15: ffff8881070f7400 FS:  0000000000000000(0000) GS:ffff88bf80080000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffffffffffffffd6 CR3: 000000010c8ff006 CR4: 00000000003706e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 Call Trace:  <TASK>  ? __die+0x4d/0x8b  ? page_fault_oops+0x91/0x180  ? trace_buffer_unlock_commit_regs+0x38/0x1a0  ? exc_page_fault+0x391/0x5e0  ? asm_exc_page_fault+0x22/0x30  __qla2x00_abort_all_cmds+0xcb/0x3e0 [qla2xxx_scst]  qla2x00_abort_all_cmds+0x50/0x70 [qla2xxx_scst]  qla2x00_abort_isp_cleanup+0x3b7/0x4b0 [qla2xxx_scst]  qla2x00_abort_isp+0xfd/0x860 [qla2xxx_scst]  qla2x00_do_dpc+0x581/0xa40 [qla2xxx_scst]  kthread+0xa8/0xd0  </TASK>  Then commit 4475afa2646d (\"scsi: qla2xxx: Complete command early within lock\") added the spinlock back, because not having the lock caused a race and a crash.  But qla2x00_abort_srb() in the switch below already checks for qla2x00_chip_is_down() and handles it the same way, so the code above the switch is now redundant and still buggy in target-mode. Remove it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68797",
                                "url": "https://ubuntu.com/security/CVE-2025-68797",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  char: applicom: fix NULL pointer dereference in ac_ioctl  Discovered by Atuin - Automated Vulnerability Discovery Engine.  In ac_ioctl, the validation of IndexCard and the check for a valid RamIO pointer are skipped when cmd is 6. However, the function unconditionally executes readb(apbs[IndexCard].RamIO + VERS) at the end.  If cmd is 6, IndexCard may reference a board that does not exist (where RamIO is NULL), leading to a NULL pointer dereference.  Fix this by skipping the readb access when cmd is 6, as this command is a global information query and does not target a specific board context.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68819",
                                "url": "https://ubuntu.com/security/CVE-2025-68819",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()  rlen value is a user-controlled value, but dtv5100_i2c_msg() does not check the size of the rlen value. Therefore, if it is set to a value larger than sizeof(st->data), an out-of-bounds vuln occurs for st->data.  Therefore, we need to add proper range checking to prevent this vuln.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68820",
                                "url": "https://ubuntu.com/security/CVE-2025-68820",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: xattr: fix null pointer deref in ext4_raw_inode()  If ext4_get_inode_loc() fails (e.g. if it returns -EFSCORRUPTED), iloc.bh will remain set to NULL. Since ext4_xattr_inode_dec_ref_all() lacks error checking, this will lead to a null pointer dereference in ext4_raw_inode(), called right after ext4_get_inode_loc().  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71147",
                                "url": "https://ubuntu.com/security/CVE-2025-71147",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  KEYS: trusted: Fix a memory leak in tpm2_load_cmd  'tpm2_load_cmd' allocates a tempoary blob indirectly via 'tpm2_key_decode' but it is not freed in the failure paths. Address this by wrapping the blob into with a cleanup helper.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-23 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71108",
                                "url": "https://ubuntu.com/security/CVE-2025-71108",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: typec: ucsi: Handle incorrect num_connectors capability  The UCSI spec states that the num_connectors field is 7 bits, and the 8th bit is reserved and should be set to zero. Some buggy FW has been known to set this bit, and it can lead to a system not booting. Flag that the FW is not behaving correctly, and auto-fix the value so that the system boots correctly.  Found on Lenovo P1 G8 during Linux enablement program. The FW will be fixed, but seemed worth addressing in case it hit platforms that aren't officially Linux supported.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71114",
                                "url": "https://ubuntu.com/security/CVE-2025-71114",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  via_wdt: fix critical boot hang due to unnamed resource allocation  The VIA watchdog driver uses allocate_resource() to reserve a MMIO region for the watchdog control register. However, the allocated resource was not given a name, which causes the kernel resource tree to contain an entry marked as \"<BAD>\" under /proc/iomem on x86 platforms.  During boot, this unnamed resource can lead to a critical hang because subsequent resource lookups and conflict checks fail to handle the invalid entry properly.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68783",
                                "url": "https://ubuntu.com/security/CVE-2025-68783",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-mixer: us16x08: validate meter packet indices  get_meter_levels_from_urb() parses the 64-byte meter packets sent by the device and fills the per-channel arrays meter_level[], comp_level[] and master_level[] in struct snd_us16x08_meter_store.  Currently the function derives the channel index directly from the meter packet (MUB2(meter_urb, s) - 1) and uses it to index those arrays without validating the range. If the packet contains a negative or out-of-range channel number, the driver may write past the end of these arrays.  Introduce a local channel variable and validate it before updating the arrays. We reject negative indices, limit meter_level[] and comp_level[] to SND_US16X08_MAX_CHANNELS, and guard master_level[] updates with ARRAY_SIZE(master_level).",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68776",
                                "url": "https://ubuntu.com/security/CVE-2025-68776",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/hsr: fix NULL pointer dereference in prp_get_untagged_frame()  prp_get_untagged_frame() calls __pskb_copy() to create frame->skb_std but doesn't check if the allocation failed. If __pskb_copy() returns NULL, skb_clone() is called with a NULL pointer, causing a crash:  Oops: general protection fault, probably for non-canonical address 0xdffffc000000000f: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000078-0x000000000000007f] CPU: 0 UID: 0 PID: 5625 Comm: syz.1.18 Not tainted syzkaller #0 PREEMPT(full) Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 RIP: 0010:skb_clone+0xd7/0x3a0 net/core/skbuff.c:2041 Code: 03 42 80 3c 20 00 74 08 4c 89 f7 e8 23 29 05 f9 49 83 3e 00 0f 85 a0 01 00 00 e8 94 dd 9d f8 48 8d 6b 7e 49 89 ee 49 c1 ee 03 <43> 0f b6 04 26 84 c0 0f 85 d1 01 00 00 44 0f b6 7d 00 41 83 e7 0c RSP: 0018:ffffc9000d00f200 EFLAGS: 00010207 RAX: ffffffff892235a1 RBX: 0000000000000000 RCX: ffff88803372a480 RDX: 0000000000000000 RSI: 0000000000000820 RDI: 0000000000000000 RBP: 000000000000007e R08: ffffffff8f7d0f77 R09: 1ffffffff1efa1ee R10: dffffc0000000000 R11: fffffbfff1efa1ef R12: dffffc0000000000 R13: 0000000000000820 R14: 000000000000000f R15: ffff88805144cc00 FS:  0000555557f6d500(0000) GS:ffff88808d72f000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000555581d35808 CR3: 000000005040e000 CR4: 0000000000352ef0 Call Trace:  <TASK>  hsr_forward_do net/hsr/hsr_forward.c:-1 [inline]  hsr_forward_skb+0x1013/0x2860 net/hsr/hsr_forward.c:741  hsr_handle_frame+0x6ce/0xa70 net/hsr/hsr_slave.c:84  __netif_receive_skb_core+0x10b9/0x4380 net/core/dev.c:5966  __netif_receive_skb_one_core net/core/dev.c:6077 [inline]  __netif_receive_skb+0x72/0x380 net/core/dev.c:6192  netif_receive_skb_internal net/core/dev.c:6278 [inline]  netif_receive_skb+0x1cb/0x790 net/core/dev.c:6337  tun_rx_batched+0x1b9/0x730 drivers/net/tun.c:1485  tun_get_user+0x2b65/0x3e90 drivers/net/tun.c:1953  tun_chr_write_iter+0x113/0x200 drivers/net/tun.c:1999  new_sync_write fs/read_write.c:593 [inline]  vfs_write+0x5c9/0xb30 fs/read_write.c:686  ksys_write+0x145/0x250 fs/read_write.c:738  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f0449f8e1ff Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 f9 92 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 4c 93 02 00 48 RSP: 002b:00007ffd7ad94c90 EFLAGS: 00000293 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007f044a1e5fa0 RCX: 00007f0449f8e1ff RDX: 000000000000003e RSI: 0000200000000500 RDI: 00000000000000c8 RBP: 00007ffd7ad94d20 R08: 0000000000000000 R09: 0000000000000000 R10: 000000000000003e R11: 0000000000000293 R12: 0000000000000001 R13: 00007f044a1e5fa0 R14: 00007f044a1e5fa0 R15: 0000000000000003  </TASK>  Add a NULL check immediately after __pskb_copy() to handle allocation failures gracefully.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68777",
                                "url": "https://ubuntu.com/security/CVE-2025-68777",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: ti_am335x_tsc - fix off-by-one error in wire_order validation  The current validation 'wire_order[i] > ARRAY_SIZE(config_pins)' allows wire_order[i] to equal ARRAY_SIZE(config_pins), which causes out-of-bounds access when used as index in 'config_pins[wire_order[i]]'.  Since config_pins has 4 elements (indices 0-3), the valid range for wire_order should be 0-3. Fix the off-by-one error by using >= instead of > in the validation check.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71112",
                                "url": "https://ubuntu.com/security/CVE-2025-71112",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hns3: add VLAN id validation before using  Currently, the VLAN id may be used without validation when receive a VLAN configuration mailbox from VF. The length of vlan_del_fail_bmap is BITS_TO_LONGS(VLAN_N_VID). It may cause out-of-bounds memory access once the VLAN id is bigger than or equal to VLAN_N_VID.  Therefore, VLAN id needs to be checked to ensure it is within the range of VLAN_N_VID.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71064",
                                "url": "https://ubuntu.com/security/CVE-2025-71064",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: hns3: using the num_tqps in the vf driver to apply for resources  Currently, hdev->htqp is allocated using hdev->num_tqps, and kinfo->tqp is allocated using kinfo->num_tqps. However, kinfo->num_tqps is set to min(new_tqps, hdev->num_tqps);  Therefore, kinfo->num_tqps may be smaller than hdev->num_tqps, which causes some hdev->htqp[i] to remain uninitialized in hclgevf_knic_setup().  Thus, this patch allocates hdev->htqp and kinfo->tqp using hdev->num_tqps, ensuring that the lengths of hdev->htqp and kinfo->tqp are consistent and that all elements are properly initialized.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68816",
                                "url": "https://ubuntu.com/security/CVE-2025-68816",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/mlx5: fw_tracer, Validate format string parameters  Add validation for format string parameters in the firmware tracer to prevent potential security vulnerabilities and crashes from malformed format strings received from firmware.  The firmware tracer receives format strings from the device firmware and uses them to format trace messages. Without proper validation, bad firmware could provide format strings with invalid format specifiers (e.g., %s, %p, %n) that could lead to crashes, or other undefined behavior.  Add mlx5_tracer_validate_params() to validate that all format specifiers in trace strings are limited to safe integer/hex formats (%x, %d, %i, %u, %llx, %lx, etc.). Reject strings containing other format types that could be used to access arbitrary memory or cause crashes. Invalid format strings are added to the trace output for visibility with \"BAD_FORMAT: \" prefix.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68795",
                                "url": "https://ubuntu.com/security/CVE-2025-68795",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ethtool: Avoid overflowing userspace buffer on stats query  The ethtool -S command operates across three ioctl calls: ETHTOOL_GSSET_INFO for the size, ETHTOOL_GSTRINGS for the names, and ETHTOOL_GSTATS for the values.  If the number of stats changes between these calls (e.g., due to device reconfiguration), userspace's buffer allocation will be incorrect, potentially leading to buffer overflow.  Drivers are generally expected to maintain stable stat counts, but some drivers (e.g., mlx5, bnx2x, bna, ksz884x) use dynamic counters, making this scenario possible.  Some drivers try to handle this internally: - bnad_get_ethtool_stats() returns early in case stats.n_stats is not   equal to the driver's stats count. - micrel/ksz884x also makes sure not to write anything beyond   stats.n_stats and overflow the buffer.  However, both use stats.n_stats which is already assigned with the value returned from get_sset_count(), hence won't solve the issue described here.  Change ethtool_get_strings(), ethtool_get_stats(), ethtool_get_phy_stats() to not return anything in case of a mismatch between userspace's size and get_sset_size(), to prevent buffer overflow. The returned n_stats value will be equal to zero, to reflect that nothing has been returned.  This could result in one of two cases when using upstream ethtool, depending on when the size change is detected: 1. When detected in ethtool_get_strings():     # ethtool -S eth2     no stats available  2. When detected in get stats, all stats will be reported as zero.  Both cases are presumably transient, and a subsequent ethtool call should succeed.  Other than the overflow avoidance, these two cases are very evident (no output/cleared stats), which is arguably better than presenting incorrect/shifted stats. I also considered returning an error instead of a \"silent\" response, but that seems more destructive towards userspace apps.  Notes: - This patch does not claim to fix the inherent race, it only makes sure   that we do not overflow the userspace buffer, and makes for a more   predictable behavior.  - RTNL lock is held during each ioctl, the race window exists between   the separate ioctl calls when the lock is released.  - Userspace ethtool always fills stats.n_stats, but it is likely that   these stats ioctls are implemented in other userspace applications   which might not fill it. The added code checks that it's not zero,   to prevent any regressions.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68815",
                                "url": "https://ubuntu.com/security/CVE-2025-68815",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: ets: Remove drr class from the active list if it changes to strict  Whenever a user issues an ets qdisc change command, transforming a drr class into a strict one, the ets code isn't checking whether that class was in the active list and removing it. This means that, if a user changes a strict class (which was in the active list) back to a drr one, that class will be added twice to the active list [1].  Doing so with the following commands:  tc qdisc add dev lo root handle 1: ets bands 2 strict 1 tc qdisc add dev lo parent 1:2 handle 20: \\     tbf rate 8bit burst 100b latency 1s tc filter add dev lo parent 1: basic classid 1:2 ping -c1 -W0.01 -s 56 127.0.0.1 tc qdisc change dev lo root handle 1: ets bands 2 strict 2 tc qdisc change dev lo root handle 1: ets bands 2 strict 1 ping -c1 -W0.01 -s 56 127.0.0.1  Will trigger the following splat with list debug turned on:  [   59.279014][  T365] ------------[ cut here ]------------ [   59.279452][  T365] list_add double add: new=ffff88801d60e350, prev=ffff88801d60e350, next=ffff88801d60e2c0. [   59.280153][  T365] WARNING: CPU: 3 PID: 365 at lib/list_debug.c:35 __list_add_valid_or_report+0x17f/0x220 [   59.280860][  T365] Modules linked in: [   59.281165][  T365] CPU: 3 UID: 0 PID: 365 Comm: tc Not tainted 6.18.0-rc7-00105-g7e9f13163c13-dirty #239 PREEMPT(voluntary) [   59.281977][  T365] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011 [   59.282391][  T365] RIP: 0010:__list_add_valid_or_report+0x17f/0x220 [   59.282842][  T365] Code: 89 c6 e8 d4 b7 0d ff 90 0f 0b 90 90 31 c0 e9 31 ff ff ff 90 48 c7 c7 e0 a0 22 9f 48 89 f2 48 89 c1 4c 89 c6 e8 b2 b7 0d ff 90 <0f> 0b 90 90 31 c0 e9 0f ff ff ff 48 89 f7 48 89 44 24 10 4c 89 44 ... [   59.288812][  T365] Call Trace: [   59.289056][  T365]  <TASK> [   59.289224][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.289546][  T365]  ets_qdisc_change+0xd2b/0x1e80 [   59.289891][  T365]  ? __lock_acquire+0x7e7/0x1be0 [   59.290223][  T365]  ? __pfx_ets_qdisc_change+0x10/0x10 [   59.290546][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.290898][  T365]  ? __mutex_trylock_common+0xda/0x240 [   59.291228][  T365]  ? __pfx___mutex_trylock_common+0x10/0x10 [   59.291655][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.291993][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.292313][  T365]  ? trace_contention_end+0xc8/0x110 [   59.292656][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.293022][  T365]  ? srso_alias_return_thunk+0x5/0xfbef5 [   59.293351][  T365]  tc_modify_qdisc+0x63a/0x1cf0  Fix this by always checking and removing an ets class from the active list when changing it to strict.  [1] https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net.git/tree/net/sched/sch_ets.c?id=ce052b9402e461a9aded599f5b47e76bc727f7de#n663",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68799",
                                "url": "https://ubuntu.com/security/CVE-2025-68799",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  caif: fix integer underflow in cffrml_receive()  The cffrml_receive() function extracts a length field from the packet header and, when FCS is disabled, subtracts 2 from this length without validating that len >= 2.  If an attacker sends a malicious packet with a length field of 0 or 1 to an interface with FCS disabled, the subtraction causes an integer underflow.  This can lead to memory exhaustion and kernel instability, potential information disclosure if padding contains uninitialized kernel memory.  Fix this by validating that len >= 2 before performing the subtraction.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68813",
                                "url": "https://ubuntu.com/security/CVE-2025-68813",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipvs: fix ipv4 null-ptr-deref in route error path  The IPv4 code path in __ip_vs_get_out_rt() calls dst_link_failure() without ensuring skb->dev is set, leading to a NULL pointer dereference in fib_compute_spec_dst() when ipv4_link_failure() attempts to send ICMP destination unreachable messages.  The issue emerged after commit ed0de45a1008 (\"ipv4: recompile ip options in ipv4_link_failure\") started calling __ip_options_compile() from ipv4_link_failure(). This code path eventually calls fib_compute_spec_dst() which dereferences skb->dev. An attempt was made to fix the NULL skb->dev dereference in commit 0113d9c9d1cc (\"ipv4: fix null-deref in ipv4_link_failure\"), but it only addressed the immediate dev_net(skb->dev) dereference by using a fallback device. The fix was incomplete because fib_compute_spec_dst() later in the call chain still accesses skb->dev directly, which remains NULL when IPVS calls dst_link_failure().  The crash occurs when: 1. IPVS processes a packet in NAT mode with a misconfigured destination 2. Route lookup fails in __ip_vs_get_out_rt() before establishing a route 3. The error path calls dst_link_failure(skb) with skb->dev == NULL 4. ipv4_link_failure() → ipv4_send_dest_unreach() →    __ip_options_compile() → fib_compute_spec_dst() 5. fib_compute_spec_dst() dereferences NULL skb->dev  Apply the same fix used for IPv6 in commit 326bf17ea5d4 (\"ipvs: fix ipv6 route unreach panic\"): set skb->dev from skb_dst(skb)->dev before calling dst_link_failure().  KASAN: null-ptr-deref in range [0x0000000000000328-0x000000000000032f] CPU: 1 PID: 12732 Comm: syz.1.3469 Not tainted 6.6.114 #2 RIP: 0010:__in_dev_get_rcu include/linux/inetdevice.h:233 RIP: 0010:fib_compute_spec_dst+0x17a/0x9f0 net/ipv4/fib_frontend.c:285 Call Trace:   <TASK>   spec_dst_fill net/ipv4/ip_options.c:232   spec_dst_fill net/ipv4/ip_options.c:229   __ip_options_compile+0x13a1/0x17d0 net/ipv4/ip_options.c:330   ipv4_send_dest_unreach net/ipv4/route.c:1252   ipv4_link_failure+0x702/0xb80 net/ipv4/route.c:1265   dst_link_failure include/net/dst.h:437   __ip_vs_get_out_rt+0x15fd/0x19e0 net/netfilter/ipvs/ip_vs_xmit.c:412   ip_vs_nat_xmit+0x1d8/0xc80 net/netfilter/ipvs/ip_vs_xmit.c:764",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68785",
                                "url": "https://ubuntu.com/security/CVE-2025-68785",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: openvswitch: fix middle attribute validation in push_nsh() action  The push_nsh() action structure looks like this:   OVS_ACTION_ATTR_PUSH_NSH(OVS_KEY_ATTR_NSH(OVS_NSH_KEY_ATTR_BASE,...))  The outermost OVS_ACTION_ATTR_PUSH_NSH attribute is OK'ed by the nla_for_each_nested() inside __ovs_nla_copy_actions().  The innermost OVS_NSH_KEY_ATTR_BASE/MD1/MD2 are OK'ed by the nla_for_each_nested() inside nsh_key_put_from_nlattr().  But nothing checks if the attribute in the middle is OK.  We don't even check that this attribute is the OVS_KEY_ATTR_NSH.  We just do a double unwrap with a pair of nla_data() calls - first time directly while calling validate_push_nsh() and the second time as part of the nla_for_each_nested() macro, which isn't safe, potentially causing invalid memory access if the size of this attribute is incorrect.  The failure may not be noticed during validation due to larger netlink buffer, but cause trouble later during action execution where the buffer is allocated exactly to the size:   BUG: KASAN: slab-out-of-bounds in nsh_hdr_from_nlattr+0x1dd/0x6a0 [openvswitch]  Read of size 184 at addr ffff88816459a634 by task a.out/22624   CPU: 8 UID: 0 PID: 22624 6.18.0-rc7+ #115 PREEMPT(voluntary)  Call Trace:   <TASK>   dump_stack_lvl+0x51/0x70   print_address_description.constprop.0+0x2c/0x390   kasan_report+0xdd/0x110   kasan_check_range+0x35/0x1b0   __asan_memcpy+0x20/0x60   nsh_hdr_from_nlattr+0x1dd/0x6a0 [openvswitch]   push_nsh+0x82/0x120 [openvswitch]   do_execute_actions+0x1405/0x2840 [openvswitch]   ovs_execute_actions+0xd5/0x3b0 [openvswitch]   ovs_packet_cmd_execute+0x949/0xdb0 [openvswitch]   genl_family_rcv_msg_doit+0x1d6/0x2b0   genl_family_rcv_msg+0x336/0x580   genl_rcv_msg+0x9f/0x130   netlink_rcv_skb+0x11f/0x370   genl_rcv+0x24/0x40   netlink_unicast+0x73e/0xaa0   netlink_sendmsg+0x744/0xbf0   __sys_sendto+0x3d6/0x450   do_syscall_64+0x79/0x2c0   entry_SYSCALL_64_after_hwframe+0x76/0x7e   </TASK>  Let's add some checks that the attribute is properly sized and it's the only one attribute inside the action.  Technically, there is no real reason for OVS_KEY_ATTR_NSH to be there, as we know that we're pushing an NSH header already, it just creates extra nesting, but that's how uAPI works today.  So, keeping as it is.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68800",
                                "url": "https://ubuntu.com/security/CVE-2025-68800",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mlxsw: spectrum_mr: Fix use-after-free when updating multicast route stats  Cited commit added a dedicated mutex (instead of RTNL) to protect the multicast route list, so that it will not change while the driver periodically traverses it in order to update the kernel about multicast route stats that were queried from the device.  One instance of list entry deletion (during route replace) was missed and it can result in a use-after-free [1].  Fix by acquiring the mutex before deleting the entry from the list and releasing it afterwards.  [1] BUG: KASAN: slab-use-after-free in mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum] Read of size 8 at addr ffff8881523c2fa8 by task kworker/2:5/22043  CPU: 2 UID: 0 PID: 22043 Comm: kworker/2:5 Not tainted 6.18.0-rc1-custom-g1a3d6d7cd014 #1 PREEMPT(full) Hardware name: Mellanox Technologies Ltd. MSN2010/SA002610, BIOS 5.6.5 08/24/2017 Workqueue: mlxsw_core mlxsw_sp_mr_stats_update [mlxsw_spectrum] Call Trace:  <TASK>  dump_stack_lvl+0xba/0x110  print_report+0x174/0x4f5  kasan_report+0xdf/0x110  mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30  </TASK>  Allocated by task 29933:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0x8f/0xa0  mlxsw_sp_mr_route_add+0xd8/0x4770 [mlxsw_spectrum]  mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30  Freed by task 29933:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_save_free_info+0x3b/0x70  __kasan_slab_free+0x43/0x70  kfree+0x14e/0x700  mlxsw_sp_mr_route_add+0x2dea/0x4770 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:444 [mlxsw_spectrum]  mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]  process_one_work+0x9cc/0x18e0  worker_thread+0x5df/0xe40  kthread+0x3b8/0x730  ret_from_fork+0x3e9/0x560  ret_from_fork_asm+0x1a/0x30",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68801",
                                "url": "https://ubuntu.com/security/CVE-2025-68801",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mlxsw: spectrum_router: Fix neighbour use-after-free  We sometimes observe use-after-free when dereferencing a neighbour [1]. The problem seems to be that the driver stores a pointer to the neighbour, but without holding a reference on it. A reference is only taken when the neighbour is used by a nexthop.  Fix by simplifying the reference counting scheme. Always take a reference when storing a neighbour pointer in a neighbour entry. Avoid taking a referencing when the neighbour is used by a nexthop as the neighbour entry associated with the nexthop already holds a reference.  Tested by running the test that uncovered the problem over 300 times. Without this patch the problem was reproduced after a handful of iterations.  [1] BUG: KASAN: slab-use-after-free in mlxsw_sp_neigh_entry_update+0x2d4/0x310 Read of size 8 at addr ffff88817f8e3420 by task ip/3929  CPU: 3 UID: 0 PID: 3929 Comm: ip Not tainted 6.18.0-rc4-virtme-g36b21a067510 #3 PREEMPT(full) Hardware name: Nvidia SN5600/VMOD0013, BIOS 5.13 05/31/2023 Call Trace:  <TASK>  dump_stack_lvl+0x6f/0xa0  print_address_description.constprop.0+0x6e/0x300  print_report+0xfc/0x1fb  kasan_report+0xe4/0x110  mlxsw_sp_neigh_entry_update+0x2d4/0x310  mlxsw_sp_router_rif_gone_sync+0x35f/0x510  mlxsw_sp_rif_destroy+0x1ea/0x730  mlxsw_sp_inetaddr_port_vlan_event+0xa1/0x1b0  __mlxsw_sp_inetaddr_lag_event+0xcc/0x130  __mlxsw_sp_inetaddr_event+0xf5/0x3c0  mlxsw_sp_router_netdevice_event+0x1015/0x1580  notifier_call_chain+0xcc/0x150  call_netdevice_notifiers_info+0x7e/0x100  __netdev_upper_dev_unlink+0x10b/0x210  netdev_upper_dev_unlink+0x79/0xa0  vrf_del_slave+0x18/0x50  do_set_master+0x146/0x7d0  do_setlink.isra.0+0x9a0/0x2880  rtnl_newlink+0x637/0xb20  rtnetlink_rcv_msg+0x6fe/0xb90  netlink_rcv_skb+0x123/0x380  netlink_unicast+0x4a3/0x770  netlink_sendmsg+0x75b/0xc90  __sock_sendmsg+0xbe/0x160  ____sys_sendmsg+0x5b2/0x7d0  ___sys_sendmsg+0xfd/0x180  __sys_sendmsg+0x124/0x1c0  do_syscall_64+0xbb/0xfd0  entry_SYSCALL_64_after_hwframe+0x4b/0x53 [...]  Allocated by task 109:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_kmalloc+0x7b/0x90  __kmalloc_noprof+0x2c1/0x790  neigh_alloc+0x6af/0x8f0  ___neigh_create+0x63/0xe90  mlxsw_sp_nexthop_neigh_init+0x430/0x7e0  mlxsw_sp_nexthop_type_init+0x212/0x960  mlxsw_sp_nexthop6_group_info_init.constprop.0+0x81f/0x1280  mlxsw_sp_nexthop6_group_get+0x392/0x6a0  mlxsw_sp_fib6_entry_create+0x46a/0xfd0  mlxsw_sp_router_fib6_replace+0x1ed/0x5f0  mlxsw_sp_router_fib6_event_work+0x10a/0x2a0  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20  Freed by task 154:  kasan_save_stack+0x30/0x50  kasan_save_track+0x14/0x30  __kasan_save_free_info+0x3b/0x60  __kasan_slab_free+0x43/0x70  kmem_cache_free_bulk.part.0+0x1eb/0x5e0  kvfree_rcu_bulk+0x1f2/0x260  kfree_rcu_work+0x130/0x1b0  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20  Last potentially related work creation:  kasan_save_stack+0x30/0x50  kasan_record_aux_stack+0x8c/0xa0  kvfree_call_rcu+0x93/0x5b0  mlxsw_sp_router_neigh_event_work+0x67d/0x860  process_one_work+0xd57/0x1390  worker_thread+0x4d6/0xd40  kthread+0x355/0x5b0  ret_from_fork+0x1d4/0x270  ret_from_fork_asm+0x11/0x20",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71066",
                                "url": "https://ubuntu.com/security/CVE-2025-71066",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: ets: Always remove class from active list before deleting in ets_qdisc_change  zdi-disclosures@trendmicro.com says:  The vulnerability is a race condition between `ets_qdisc_dequeue` and `ets_qdisc_change`.  It leads to UAF on `struct Qdisc` object. Attacker requires the capability to create new user and network namespace in order to trigger the bug. See my additional commentary at the end of the analysis.  Analysis:  static int ets_qdisc_change(struct Qdisc *sch, struct nlattr *opt,                           struct netlink_ext_ack *extack) { ...        // (1) this lock is preventing .change handler (`ets_qdisc_change`)       //to race with .dequeue handler (`ets_qdisc_dequeue`)       sch_tree_lock(sch);        for (i = nbands; i < oldbands; i++) {               if (i >= q->nstrict && q->classes[i].qdisc->q.qlen)                       list_del_init(&q->classes[i].alist);               qdisc_purge_queue(q->classes[i].qdisc);       }        WRITE_ONCE(q->nbands, nbands);       for (i = nstrict; i < q->nstrict; i++) {               if (q->classes[i].qdisc->q.qlen) { \t\t      // (2) the class is added to the q->active                       list_add_tail(&q->classes[i].alist, &q->active);                       q->classes[i].deficit = quanta[i];               }       }       WRITE_ONCE(q->nstrict, nstrict);       memcpy(q->prio2band, priomap, sizeof(priomap));        for (i = 0; i < q->nbands; i++)               WRITE_ONCE(q->classes[i].quantum, quanta[i]);        for (i = oldbands; i < q->nbands; i++) {               q->classes[i].qdisc = queues[i];               if (q->classes[i].qdisc != &noop_qdisc)                       qdisc_hash_add(q->classes[i].qdisc, true);       }        // (3) the qdisc is unlocked, now dequeue can be called in parallel       // to the rest of .change handler       sch_tree_unlock(sch);        ets_offload_change(sch);       for (i = q->nbands; i < oldbands; i++) { \t      // (4) we're reducing the refcount for our class's qdisc and \t      //  freeing it               qdisc_put(q->classes[i].qdisc); \t      // (5) If we call .dequeue between (4) and (5), we will have \t      // a strong UAF and we can control RIP               q->classes[i].qdisc = NULL;               WRITE_ONCE(q->classes[i].quantum, 0);               q->classes[i].deficit = 0;               gnet_stats_basic_sync_init(&q->classes[i].bstats);               memset(&q->classes[i].qstats, 0, sizeof(q->classes[i].qstats));       }       return 0; }  Comment: This happens because some of the classes have their qdiscs assigned to NULL, but remain in the active list. This commit fixes this issue by always removing the class from the active list before deleting and freeing its associated qdisc  Reproducer Steps (trimmed version of what was sent by zdi-disclosures@trendmicro.com)  ``` DEV=\"${DEV:-lo}\" ROOT_HANDLE=\"${ROOT_HANDLE:-1:}\" BAND2_HANDLE=\"${BAND2_HANDLE:-20:}\"   # child under 1:2 PING_BYTES=\"${PING_BYTES:-48}\" PING_COUNT=\"${PING_COUNT:-200000}\" PING_DST=\"${PING_DST:-127.0.0.1}\"  SLOW_TBF_RATE=\"${SLOW_TBF_RATE:-8bit}\" SLOW_TBF_BURST=\"${SLOW_TBF_BURST:-100b}\" SLOW_TBF_LAT=\"${SLOW_TBF_LAT:-1s}\"  cleanup() {   tc qdisc del dev \"$DEV\" root 2>/dev/null } trap cleanup EXIT  ip link set \"$DEV\" up  tc qdisc del dev \"$DEV\" root 2>/dev/null || true  tc qdisc add dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 2  tc qdisc add dev \"$DEV\" parent 1:2 handle \"$BAND2_HANDLE\" \\   tbf rate \"$SLOW_TBF_RATE\" burst \"$SLOW_TBF_BURST\" latency \"$SLOW_TBF_LAT\"  tc filter add dev \"$DEV\" parent 1: protocol all prio 1 u32 match u32 0 0 flowid 1:2 tc -s qdisc ls dev $DEV  ping -I \"$DEV\" -f -c \"$PING_COUNT\" -s \"$PING_BYTES\" -W 0.001 \"$PING_DST\" \\   >/dev/null 2>&1 & tc qdisc change dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 0 tc qdisc change dev \"$DEV\" root handle \"$ROOT_HANDLE\" ets bands 2 strict 2 tc -s qdisc ls dev $DEV tc qdisc del dev \"$DEV\" parent ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68787",
                                "url": "https://ubuntu.com/security/CVE-2025-68787",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  netrom: Fix memory leak in nr_sendmsg()  syzbot reported a memory leak [1].  When function sock_alloc_send_skb() return NULL in nr_output(), the original skb is not freed, which was allocated in nr_sendmsg(). Fix this by freeing it before return.  [1] BUG: memory leak unreferenced object 0xffff888129f35500 (size 240):   comm \"syz.0.17\", pid 6119, jiffies 4294944652   hex dump (first 32 bytes):     00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................     00 00 00 00 00 00 00 00 00 10 52 28 81 88 ff ff  ..........R(....   backtrace (crc 1456a3e4):     kmemleak_alloc_recursive include/linux/kmemleak.h:44 [inline]     slab_post_alloc_hook mm/slub.c:4983 [inline]     slab_alloc_node mm/slub.c:5288 [inline]     kmem_cache_alloc_node_noprof+0x36f/0x5e0 mm/slub.c:5340     __alloc_skb+0x203/0x240 net/core/skbuff.c:660     alloc_skb include/linux/skbuff.h:1383 [inline]     alloc_skb_with_frags+0x69/0x3f0 net/core/skbuff.c:6671     sock_alloc_send_pskb+0x379/0x3e0 net/core/sock.c:2965     sock_alloc_send_skb include/net/sock.h:1859 [inline]     nr_sendmsg+0x287/0x450 net/netrom/af_netrom.c:1105     sock_sendmsg_nosec net/socket.c:727 [inline]     __sock_sendmsg net/socket.c:742 [inline]     sock_write_iter+0x293/0x2a0 net/socket.c:1195     new_sync_write fs/read_write.c:593 [inline]     vfs_write+0x45d/0x710 fs/read_write.c:686     ksys_write+0x143/0x170 fs/read_write.c:738     do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]     do_syscall_64+0xa4/0xfa0 arch/x86/entry/syscall_64.c:94     entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68767",
                                "url": "https://ubuntu.com/security/CVE-2025-68767",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hfsplus: Verify inode mode when loading from disk  syzbot is reporting that S_IFMT bits of inode->i_mode can become bogus when the S_IFMT bits of the 16bits \"mode\" field loaded from disk are corrupted.  According to [1], the permissions field was treated as reserved in Mac OS 8 and 9. According to [2], the reserved field was explicitly initialized with 0, and that field must remain 0 as long as reserved. Therefore, when the \"mode\" field is not 0 (i.e. no longer reserved), the file must be S_IFDIR if dir == 1, and the file must be one of S_IFREG/S_IFLNK/S_IFCHR/ S_IFBLK/S_IFIFO/S_IFSOCK if dir == 0.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68774",
                                "url": "https://ubuntu.com/security/CVE-2025-68774",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create  When sync() and link() are called concurrently, both threads may enter hfs_bnode_find() without finding the node in the hash table and proceed to create it.  Thread A:   hfsplus_write_inode()     -> hfsplus_write_system_inode()       -> hfs_btree_write()         -> hfs_bnode_find(tree, 0)           -> __hfs_bnode_create(tree, 0)  Thread B:   hfsplus_create_cat()     -> hfs_brec_insert()       -> hfs_bnode_split()         -> hfs_bmap_alloc()           -> hfs_bnode_find(tree, 0)             -> __hfs_bnode_create(tree, 0)  In this case, thread A creates the bnode, sets refcnt=1, and hashes it. Thread B also tries to create the same bnode, notices it has already been inserted, drops its own instance, and uses the hashed one without getting the node.  ```  \tnode2 = hfs_bnode_findhash(tree, cnid); \tif (!node2) {                                 <- Thread A \t\thash = hfs_bnode_hash(cnid); \t\tnode->next_hash = tree->node_hash[hash]; \t\ttree->node_hash[hash] = node; \t\ttree->node_hash_cnt++; \t} else {                                      <- Thread B \t\tspin_unlock(&tree->hash_lock); \t\tkfree(node); \t\twait_event(node2->lock_wq, \t\t\t!test_bit(HFS_BNODE_NEW, &node2->flags)); \t\treturn node2; \t} ```  However, hfs_bnode_find() requires each call to take a reference. Here both threads end up setting refcnt=1. When they later put the node, this triggers:  BUG_ON(!atomic_read(&node->refcnt))  In this scenario, Thread B in fact finds the node in the hash table rather than creating a new one, and thus must take a reference.  Fix this by calling hfs_bnode_get() when reusing a bnode newly created by another thread to ensure the refcount is updated correctly.  A similar bug was fixed in HFS long ago in commit a9dc087fd3c4 (\"fix missing hfs_bnode_get() in __hfs_bnode_create\") but the same issue remained in HFS+ until now.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-71118",
                                "url": "https://ubuntu.com/security/CVE-2025-71118",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ACPICA: Avoid walking the Namespace if start_node is NULL  Although commit 0c9992315e73 (\"ACPICA: Avoid walking the ACPI Namespace if it is not there\") fixed the situation when both start_node and acpi_gbl_root_node are NULL, the Linux kernel mainline now still crashed on Honor Magicbook 14 Pro [1].  That happens due to the access to the member of parent_node in acpi_ns_get_next_node().  The NULL pointer dereference will always happen, no matter whether or not the start_node is equal to ACPI_ROOT_OBJECT, so move the check of start_node being NULL out of the if block.  Unfortunately, all the attempts to contact Honor have failed, they refused to provide any technical support for Linux.  The bad DSDT table's dump could be found on GitHub [2].  DMI: HONOR FMB-P/FMB-P-PCB, BIOS 1.13 05/08/2025  [ rjw: Subject adjustment, changelog edits ]",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-14 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68780",
                                "url": "https://ubuntu.com/security/CVE-2025-68780",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sched/deadline: only set free_cpus for online runqueues  Commit 16b269436b72 (\"sched/deadline: Modify cpudl::free_cpus to reflect rd->online\") introduced the cpudl_set/clear_freecpu functions to allow the cpu_dl::free_cpus mask to be manipulated by the deadline scheduler class rq_on/offline callbacks so the mask would also reflect this state.  Commit 9659e1eeee28 (\"sched/deadline: Remove cpu_active_mask from cpudl_find()\") removed the check of the cpu_active_mask to save some processing on the premise that the cpudl::free_cpus mask already reflected the runqueue online state.  Unfortunately, there are cases where it is possible for the cpudl_clear function to set the free_cpus bit for a CPU when the deadline runqueue is offline. When this occurs while a CPU is connected to the default root domain the flag may retain the bad state after the CPU has been unplugged. Later, a different CPU that is transitioning through the default root domain may push a deadline task to the powered down CPU when cpudl_find sees its free_cpus bit is set. If this happens the task will not have the opportunity to run.  One example is outlined here: https://lore.kernel.org/lkml/20250110233010.2339521-1-opendmb@gmail.com  Another occurs when the last deadline task is migrated from a CPU that has an offlined runqueue. The dequeue_task member of the deadline scheduler class will eventually call cpudl_clear and set the free_cpus bit for the CPU.  This commit modifies the cpudl_clear function to be aware of the online state of the deadline runqueue so that the free_cpus mask can be updated appropriately.  It is no longer necessary to manage the mask outside of the cpudl_set/clear functions so the cpudl_set/clear_freecpu functions are removed. In addition, since the free_cpus mask is now only updated under the cpudl lock the code was changed to use the non-atomic __cpumask functions.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-13 16:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68346",
                                "url": "https://ubuntu.com/security/CVE-2025-68346",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: dice: fix buffer overflow in detect_stream_formats()  The function detect_stream_formats() reads the stream_count value directly from a FireWire device without validating it. This can lead to out-of-bounds writes when a malicious device provides a stream_count value greater than MAX_STREAMS.  Fix by applying the same validation to both TX and RX stream counts in detect_stream_formats().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68764",
                                "url": "https://ubuntu.com/security/CVE-2025-68764",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFS: Automounted filesystems should inherit ro,noexec,nodev,sync flags  When a filesystem is being automounted, it needs to preserve the user-set superblock mount options, such as the \"ro\" flag.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68349",
                                "url": "https://ubuntu.com/security/CVE-2025-68349",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSv4/pNFS: Clear NFS_INO_LAYOUTCOMMIT in pnfs_mark_layout_stateid_invalid  Fixes a crash when layout is null during this call stack:  write_inode     -> nfs4_write_inode         -> pnfs_layoutcommit_inode  pnfs_set_layoutcommit relies on the lseg refcount to keep the layout around. Need to clear NFS_INO_LAYOUTCOMMIT otherwise we might attempt to reference a null layout.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68325",
                                "url": "https://ubuntu.com/security/CVE-2025-68325",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop  In cake_drop(), qdisc_tree_reduce_backlog() is used to update the qlen and backlog of the qdisc hierarchy. Its caller, cake_enqueue(), assumes that the parent qdisc will enqueue the current packet. However, this assumption breaks when cake_enqueue() returns NET_XMIT_CN: the parent qdisc stops enqueuing current packet, leaving the tree qlen/backlog accounting inconsistent. This mismatch can lead to a NULL dereference (e.g., when the parent Qdisc is qfq_qdisc).  This patch computes the qlen/backlog delta in a more robust way by observing the difference before and after the series of cake_drop() calls, and then compensates the qdisc tree accounting if cake_enqueue() returns NET_XMIT_CN.  To ensure correct compensation when ACK thinning is enabled, a new variable is introduced to keep qlen unchanged.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-18 15:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68354",
                                "url": "https://ubuntu.com/security/CVE-2025-68354",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regulator: core: Protect regulator_supply_alias_list with regulator_list_mutex  regulator_supply_alias_list was accessed without any locking in regulator_supply_alias(), regulator_register_supply_alias(), and regulator_unregister_supply_alias(). Concurrent registration, unregistration and lookups can race, leading to:  1 use-after-free if an alias entry is removed while being read, 2 duplicate entries when two threads register the same alias, 3 inconsistent alias mappings observed by consumers.  Protect all traversals, insertions and deletions on regulator_supply_alias_list with the existing regulator_list_mutex.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68758",
                                "url": "https://ubuntu.com/security/CVE-2025-68758",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  backlight: led-bl: Add devlink to supplier LEDs  LED Backlight is a consumer of one or multiple LED class devices, but devlink is currently unable to create correct supplier-producer links when the supplier is a class device. It creates instead a link where the supplier is the parent of the expected device.  One consequence is that removal order is not correctly enforced.  Issues happen for example with the following sections in a device tree overlay:      // An LED driver chip     pca9632@62 {         compatible = \"nxp,pca9632\";         reg = <0x62>;  \t// ...          addon_led_pwm: led-pwm@3 {             reg = <3>;             label = \"addon:led:pwm\";         };     };      backlight-addon {         compatible = \"led-backlight\";         leds = <&addon_led_pwm>;         brightness-levels = <255>;         default-brightness-level = <255>;     };  In this example, the devlink should be created between the backlight-addon (consumer) and the pca9632@62 (supplier). Instead it is created between the backlight-addon (consumer) and the parent of the pca9632@62, which is typically the I2C bus adapter.  On removal of the above overlay, the LED driver can be removed before the backlight device, resulting in:      Unable to handle kernel NULL pointer dereference at virtual address 0000000000000010     ...     Call trace:      led_put+0xe0/0x140      devm_led_release+0x6c/0x98  Another way to reproduce the bug without any device tree overlays is unbinding the LED class device (pca9632@62) before unbinding the consumer (backlight-addon):    echo 11-0062 >/sys/bus/i2c/drivers/leds-pca963x/unbind   echo ...backlight-dock >/sys/bus/platform/drivers/led-backlight/unbind  Fix by adding a devlink between the consuming led-backlight device and the supplying LED device, as other drivers and subsystems do as well.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68765",
                                "url": "https://ubuntu.com/security/CVE-2025-68765",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()  In mt7615_mcu_wtbl_sta_add(), an skb sskb is allocated. If the subsequent call to mt76_connac_mcu_alloc_wtbl_req() fails, the function returns an error without freeing sskb, leading to a memory leak.  Fix this by calling dev_kfree_skb() on sskb in the error handling path to ensure it is properly released.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68740",
                                "url": "https://ubuntu.com/security/CVE-2025-68740",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ima: Handle error code returned by ima_filter_rule_match()  In ima_match_rules(), if ima_filter_rule_match() returns -ENOENT due to the rule being NULL, the function incorrectly skips the 'if (!rc)' check and sets 'result = true'. The LSM rule is considered a match, causing extra files to be measured by IMA.  This issue can be reproduced in the following scenario: After unloading the SELinux policy module via 'semodule -d', if an IMA measurement is triggered before ima_lsm_rules is updated, in ima_match_rules(), the first call to ima_filter_rule_match() returns -ESTALE. This causes the code to enter the 'if (rc == -ESTALE && !rule_reinitialized)' block, perform ima_lsm_copy_rule() and retry. In ima_lsm_copy_rule(), since the SELinux module has been removed, the rule becomes NULL, and the second call to ima_filter_rule_match() returns -ENOENT. This bypasses the 'if (!rc)' check and results in a false match.  Call trace:   selinux_audit_rule_match+0x310/0x3b8   security_audit_rule_match+0x60/0xa0   ima_match_rules+0x2e4/0x4a0   ima_match_policy+0x9c/0x1e8   ima_get_action+0x48/0x60   process_measurement+0xf8/0xa98   ima_bprm_check+0x98/0xd8   security_bprm_check+0x5c/0x78   search_binary_handler+0x6c/0x318   exec_binprm+0x58/0x1b8   bprm_execve+0xb8/0x130   do_execveat_common.isra.0+0x1a8/0x258   __arm64_sys_execve+0x48/0x68   invoke_syscall+0x50/0x128   el0_svc_common.constprop.0+0xc8/0xf0   do_el0_svc+0x24/0x38   el0_svc+0x44/0x200   el0t_64_sync_handler+0x100/0x130   el0t_64_sync+0x3c8/0x3d0  Fix this by changing 'if (!rc)' to 'if (rc <= 0)' to ensure that error codes like -ENOENT do not bypass the check and accidentally result in a successful match.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68362",
                                "url": "https://ubuntu.com/security/CVE-2025-68362",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rtl818x: rtl8187: Fix potential buffer underflow in rtl8187_rx_cb()  The rtl8187_rx_cb() calculates the rx descriptor header address by subtracting its size from the skb tail pointer. However, it does not validate if the received packet (skb->len from urb->actual_length) is large enough to contain this header.  If a truncated packet is received, this will lead to a buffer underflow, reading memory before the start of the skb data area, and causing a kernel panic.  Add length checks for both rtl8187 and rtl8187b descriptor headers before attempting to access them, dropping the packet cleanly if the check fails.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68759",
                                "url": "https://ubuntu.com/security/CVE-2025-68759",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()  In rtl8180_init_rx_ring(), memory is allocated for skb packets and DMA allocations in a loop. When an allocation fails, the previously successful allocations are not freed on exit.  Fix that by jumping to err_free_rings label on error, which calls rtl8180_free_rx_ring() to free the allocations. Remove the free of rx_ring in rtl8180_init_rx_ring() error path, and set the freed priv->rx_buf entry to null, to avoid double free.",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68364",
                                "url": "https://ubuntu.com/security/CVE-2025-68364",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ocfs2: relax BUG() to ocfs2_error() in __ocfs2_move_extent()  In '__ocfs2_move_extent()', relax 'BUG()' to 'ocfs2_error()' just to avoid crashing the whole kernel due to a filesystem corruption.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68366",
                                "url": "https://ubuntu.com/security/CVE-2025-68366",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nbd: defer config unlock in nbd_genl_connect  There is one use-after-free warning when running NBD_CMD_CONNECT and NBD_CLEAR_SOCK:  nbd_genl_connect   nbd_alloc_and_init_config // config_refs=1   nbd_start_device // config_refs=2   set NBD_RT_HAS_CONFIG_REF\t\t\topen nbd // config_refs=3   recv_work done // config_refs=2 \t\t\t\t\t\tNBD_CLEAR_SOCK // config_refs=1 \t\t\t\t\t\tclose nbd // config_refs=0   refcount_inc -> uaf  ------------[ cut here ]------------ refcount_t: addition on 0; use-after-free. WARNING: CPU: 24 PID: 1014 at lib/refcount.c:25 refcount_warn_saturate+0x12e/0x290  nbd_genl_connect+0x16d0/0x1ab0  genl_family_rcv_msg_doit+0x1f3/0x310  genl_rcv_msg+0x44a/0x790  The issue can be easily reproduced by adding a small delay before refcount_inc(&nbd->config_refs) in nbd_genl_connect():          mutex_unlock(&nbd->config_lock);         if (!ret) {                 set_bit(NBD_RT_HAS_CONFIG_REF, &config->runtime_flags); +               printk(\"before sleep\\n\"); +               mdelay(5 * 1000); +               printk(\"after sleep\\n\");                 refcount_inc(&nbd->config_refs);                 nbd_connect_reply(info, nbd->index);         }",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68367",
                                "url": "https://ubuntu.com/security/CVE-2025-68367",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  macintosh/mac_hid: fix race condition in mac_hid_toggle_emumouse  The following warning appears when running syzkaller, and this issue also exists in the mainline code.   ------------[ cut here ]------------  list_add double add: new=ffffffffa57eee28, prev=ffffffffa57eee28, next=ffffffffa5e63100.  WARNING: CPU: 0 PID: 1491 at lib/list_debug.c:35 __list_add_valid_or_report+0xf7/0x130  Modules linked in:  CPU: 0 PID: 1491 Comm: syz.1.28 Not tainted 6.6.0+ #3  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014  RIP: 0010:__list_add_valid_or_report+0xf7/0x130  RSP: 0018:ff1100010dfb7b78 EFLAGS: 00010282  RAX: 0000000000000000 RBX: ffffffffa57eee18 RCX: ffffffff97fc9817  RDX: 0000000000040000 RSI: ffa0000002383000 RDI: 0000000000000001  RBP: ffffffffa57eee28 R08: 0000000000000001 R09: ffe21c0021bf6f2c  R10: 0000000000000001 R11: 6464615f7473696c R12: ffffffffa5e63100  R13: ffffffffa57eee28 R14: ffffffffa57eee28 R15: ff1100010dfb7d48  FS:  00007fb14398b640(0000) GS:ff11000119600000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000000 CR3: 000000010d096005 CR4: 0000000000773ef0  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000  DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400  PKRU: 80000000  Call Trace:   <TASK>   input_register_handler+0xb3/0x210   mac_hid_start_emulation+0x1c5/0x290   mac_hid_toggle_emumouse+0x20a/0x240   proc_sys_call_handler+0x4c2/0x6e0   new_sync_write+0x1b1/0x2d0   vfs_write+0x709/0x950   ksys_write+0x12a/0x250   do_syscall_64+0x5a/0x110   entry_SYSCALL_64_after_hwframe+0x78/0xe2  The WARNING occurs when two processes concurrently write to the mac-hid emulation sysctl, causing a race condition in mac_hid_toggle_emumouse(). Both processes read old_val=0, then both try to register the input handler, leading to a double list_add of the same handler.    CPU0                             CPU1   -------------------------        -------------------------   vfs_write() //write 1            vfs_write()  //write 1     proc_sys_write()                 proc_sys_write()       mac_hid_toggle_emumouse()          mac_hid_toggle_emumouse()         old_val = *valp // old_val=0                                            old_val = *valp // old_val=0                                            mutex_lock_killable()                                            proc_dointvec() // *valp=1                                            mac_hid_start_emulation()                                              input_register_handler()                                            mutex_unlock()         mutex_lock_killable()         proc_dointvec()         mac_hid_start_emulation()           input_register_handler() //Trigger Warning         mutex_unlock()  Fix this by moving the old_val read inside the mutex lock region.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68372",
                                "url": "https://ubuntu.com/security/CVE-2025-68372",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nbd: defer config put in recv_work  There is one uaf issue in recv_work when running NBD_CLEAR_SOCK and NBD_CMD_RECONFIGURE:   nbd_genl_connect     // conf_ref=2 (connect and recv_work A)   nbd_open\t       // conf_ref=3   recv_work A done     // conf_ref=2   NBD_CLEAR_SOCK       // conf_ref=1   nbd_genl_reconfigure // conf_ref=2 (trigger recv_work B)   close nbd\t       // conf_ref=1   recv_work B     config_put         // conf_ref=0     atomic_dec(&config->recv_threads); -> UAF  Or only running NBD_CLEAR_SOCK:   nbd_genl_connect   // conf_ref=2   nbd_open \t     // conf_ref=3   NBD_CLEAR_SOCK     // conf_ref=2   close nbd     nbd_release       config_put     // conf_ref=1   recv_work     config_put \t     // conf_ref=0     atomic_dec(&config->recv_threads); -> UAF  Commit 87aac3a80af5 (\"nbd: call nbd_config_put() before notifying the waiter\") moved nbd_config_put() to run before waking up the waiter in recv_work, in order to ensure that nbd_start_device_ioctl() would not be woken up while nbd->task_recv was still uncleared.  However, in nbd_start_device_ioctl(), after being woken up it explicitly calls flush_workqueue() to make sure all current works are finished. Therefore, there is no need to move the config put ahead of the wakeup.  Move nbd_config_put() to the end of recv_work, so that the reference is held for the whole lifetime of the worker thread. This makes sure the config cannot be freed while recv_work is still running, even if clear + reconfigure interleave.  In addition, we don't need to worry about recv_work dropping the last nbd_put (which causes deadlock):  path A (netlink with NBD_CFLAG_DESTROY_ON_DISCONNECT):   connect  // nbd_refs=1 (trigger recv_work)   open nbd // nbd_refs=2   NBD_CLEAR_SOCK   close nbd     nbd_release       nbd_disconnect_and_put         flush_workqueue // recv_work done       nbd_config_put         nbd_put // nbd_refs=1       nbd_put // nbd_refs=0         queue_work  path B (netlink without NBD_CFLAG_DESTROY_ON_DISCONNECT):   connect  // nbd_refs=2 (trigger recv_work)   open nbd // nbd_refs=3   NBD_CLEAR_SOCK // conf_refs=2   close nbd     nbd_release       nbd_config_put // conf_refs=1       nbd_put // nbd_refs=2   recv_work done // conf_refs=0, nbd_refs=1   rmmod // nbd_refs=0  Depends-on: e2daec488c57 (\"nbd: Fix hungtask when nbd_config_put\")",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68746",
                                "url": "https://ubuntu.com/security/CVE-2025-68746",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  spi: tegra210-quad: Fix timeout handling  When the CPU that the QSPI interrupt handler runs on (typically CPU 0) is excessively busy, it can lead to rare cases of the IRQ thread not running before the transfer timeout is reached.  While handling the timeouts, any pending transfers are cleaned up and the message that they correspond to is marked as failed, which leaves the curr_xfer field pointing at stale memory.  To avoid this, clear curr_xfer to NULL upon timeout and check for this condition when the IRQ thread is finally run.  While at it, also make sure to clear interrupts on failure so that new interrupts can be run.  A better, more involved, fix would move the interrupt clearing into a hard IRQ handler. Ideally we would also want to signal that the IRQ thread no longer needs to be run after the timeout is hit to avoid the extra check for a valid transfer.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 13:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68724",
                                "url": "https://ubuntu.com/security/CVE-2025-68724",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  crypto: asymmetric_keys - prevent overflow in asymmetric_key_generate_id  Use check_add_overflow() to guard against potential integer overflows when adding the binary blob lengths and the size of an asymmetric_key_id structure and return ERR_PTR(-EOVERFLOW) accordingly. This prevents a possible buffer overflow when copying data from potentially malicious X.509 certificate fields that can be arbitrarily large, such as ASN.1 INTEGER serial numbers, issuer names, etc.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68727",
                                "url": "https://ubuntu.com/security/CVE-2025-68727",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: Fix uninit buffer allocated by __getname()  Fix uninit errors caused after buffer allocation given to 'de'; by initializing the buffer with zeroes. The fix was found by using KMSAN.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68728",
                                "url": "https://ubuntu.com/security/CVE-2025-68728",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: fix uninit memory after failed mi_read in mi_format_new  Fix a KMSAN un-init bug found by syzkaller.  ntfs_get_bh() expects a buffer from sb_getblk(), that buffer may not be uptodate. We do not bring the buffer uptodate before setting it as uptodate. If the buffer were to not be uptodate, it could mean adding a buffer with un-init data to the mi record. Attempting to load that record will trigger KMSAN.  Avoid this by setting the buffer as uptodate, if it’s not already, by overwriting it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68757",
                                "url": "https://ubuntu.com/security/CVE-2025-68757",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vgem-fence: Fix potential deadlock on release  A timer that expires a vgem fence automatically in 10 seconds is now released with timer_delete_sync() from fence->ops.release() called on last dma_fence_put().  In some scenarios, it can run in IRQ context, which is not safe unless TIMER_IRQSAFE is used.  One potentially risky scenario was demonstrated in Intel DRM CI trybot, BAT run on machine bat-adlp-6, while working on new IGT subtests syncobj_timeline@stress-* as user space replacements of some problematic test cases of a dma-fence-chain selftest [1].  [117.004338] ================================ [117.004340] WARNING: inconsistent lock state [117.004342] 6.17.0-rc7-CI_DRM_17270-g7644974e648c+ #1 Tainted: G S   U [117.004346] -------------------------------- [117.004347] inconsistent {HARDIRQ-ON-W} -> {IN-HARDIRQ-W} usage. [117.004349] swapper/0/0 [HC1[1]:SC1[1]:HE0:SE0] takes: [117.004352] ffff888138f86aa8 ((&fence->timer)){?.-.}-{0:0}, at: __timer_delete_sync+0x4b/0x190 [117.004361] {HARDIRQ-ON-W} state was registered at: [117.004363]   lock_acquire+0xc4/0x2e0 [117.004366]   call_timer_fn+0x80/0x2a0 [117.004368]   __run_timers+0x231/0x310 [117.004370]   run_timer_softirq+0x76/0xe0 [117.004372]   handle_softirqs+0xd4/0x4d0 [117.004375]   __irq_exit_rcu+0x13f/0x160 [117.004377]   irq_exit_rcu+0xe/0x20 [117.004379]   sysvec_apic_timer_interrupt+0xa0/0xc0 [117.004382]   asm_sysvec_apic_timer_interrupt+0x1b/0x20 [117.004385]   cpuidle_enter_state+0x12b/0x8a0 [117.004388]   cpuidle_enter+0x2e/0x50 [117.004393]   call_cpuidle+0x22/0x60 [117.004395]   do_idle+0x1fd/0x260 [117.004398]   cpu_startup_entry+0x29/0x30 [117.004401]   start_secondary+0x12d/0x160 [117.004404]   common_startup_64+0x13e/0x141 [117.004407] irq event stamp: 2282669 [117.004409] hardirqs last  enabled at (2282668): [<ffffffff8289db71>] _raw_spin_unlock_irqrestore+0x51/0x80 [117.004414] hardirqs last disabled at (2282669): [<ffffffff82882021>] sysvec_irq_work+0x11/0xc0 [117.004419] softirqs last  enabled at (2254702): [<ffffffff8289fd00>] __do_softirq+0x10/0x18 [117.004423] softirqs last disabled at (2254725): [<ffffffff813d4ddf>] __irq_exit_rcu+0x13f/0x160 [117.004426] other info that might help us debug this: [117.004429]  Possible unsafe locking scenario: [117.004432]        CPU0 [117.004433]        ---- [117.004434]   lock((&fence->timer)); [117.004436]   <Interrupt> [117.004438]     lock((&fence->timer)); [117.004440]  *** DEADLOCK *** [117.004443] 1 lock held by swapper/0/0: [117.004445]  #0: ffffc90000003d50 ((&fence->timer)){?.-.}-{0:0}, at: call_timer_fn+0x7a/0x2a0 [117.004450] stack backtrace: [117.004453] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Tainted: G S   U             6.17.0-rc7-CI_DRM_17270-g7644974e648c+ #1 PREEMPT(voluntary) [117.004455] Tainted: [S]=CPU_OUT_OF_SPEC, [U]=USER [117.004455] Hardware name: Intel Corporation Alder Lake Client Platform/AlderLake-P DDR4 RVP, BIOS RPLPFWI1.R00.4035.A00.2301200723 01/20/2023 [117.004456] Call Trace: [117.004456]  <IRQ> [117.004457]  dump_stack_lvl+0x91/0xf0 [117.004460]  dump_stack+0x10/0x20 [117.004461]  print_usage_bug.part.0+0x260/0x360 [117.004463]  mark_lock+0x76e/0x9c0 [117.004465]  ? register_lock_class+0x48/0x4a0 [117.004467]  __lock_acquire+0xbc3/0x2860 [117.004469]  lock_acquire+0xc4/0x2e0 [117.004470]  ? __timer_delete_sync+0x4b/0x190 [117.004472]  ? __timer_delete_sync+0x4b/0x190 [117.004473]  __timer_delete_sync+0x68/0x190 [117.004474]  ? __timer_delete_sync+0x4b/0x190 [117.004475]  timer_delete_sync+0x10/0x20 [117.004476]  vgem_fence_release+0x19/0x30 [vgem] [117.004478]  dma_fence_release+0xc1/0x3b0 [117.004480]  ? dma_fence_release+0xa1/0x3b0 [117.004481]  dma_fence_chain_release+0xe7/0x130 [117.004483]  dma_fence_release+0xc1/0x3b0 [117.004484]  ? _raw_spin_unlock_irqrestore+0x27/0x80 [117.004485]  dma_fence_chain_irq_work+0x59/0x80 [117.004487]  irq_work_single+0x75/0xa0 [117.004490]  irq_work_r ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2026-01-05 10:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68732",
                                "url": "https://ubuntu.com/security/CVE-2025-68732",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  gpu: host1x: Fix race in syncpt alloc/free  Fix race condition between host1x_syncpt_alloc() and host1x_syncpt_put() by using kref_put_mutex() instead of kref_put() + manual mutex locking.  This ensures no thread can acquire the syncpt_mutex after the refcount drops to zero but before syncpt_release acquires it. This prevents races where syncpoints could be allocated while still being cleaned up from a previous release.  Remove explicit mutex locking in syncpt_release as kref_put_mutex() handles this atomically.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68733",
                                "url": "https://ubuntu.com/security/CVE-2025-68733",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smack: fix bug: unprivileged task can create labels  If an unprivileged task is allowed to relabel itself (/smack/relabel-self is not empty), it can freely create new labels by writing their names into own /proc/PID/attr/smack/current  This occurs because do_setattr() imports the provided label in advance, before checking \"relabel-self\" list.  This change ensures that the \"relabel-self\" list is checked before importing the label.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68254",
                                "url": "https://ubuntu.com/security/CVE-2025-68254",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix out-of-bounds read in OnBeacon ESR IE parsing  The Extended Supported Rates (ESR) IE handling in OnBeacon accessed *(p + 1 + ielen) and *(p + 2 + ielen) without verifying that these offsets lie within the received frame buffer. A malformed beacon with an ESR IE positioned at the end of the buffer could cause an out-of-bounds read, potentially triggering a kernel panic.  Add a boundary check to ensure that the ESR IE body and the subsequent bytes are within the limits of the frame before attempting to access them.  This prevents OOB reads caused by malformed beacon frames.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68255",
                                "url": "https://ubuntu.com/security/CVE-2025-68255",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  staging: rtl8723bs: fix stack buffer overflow in OnAssocReq IE parsing  The Supported Rates IE length from an incoming Association Request frame was used directly as the memcpy() length when copying into a fixed-size 16-byte stack buffer (supportRate). A malicious station can advertise an IE length larger than 16 bytes, causing a stack buffer overflow.  Clamp ie_len to the buffer size before copying the Supported Rates IE, and correct the bounds check when merging Extended Supported Rates to prevent a second potential overflow.  This prevents kernel stack corruption triggered by malformed association requests.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68257",
                                "url": "https://ubuntu.com/security/CVE-2025-68257",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: check device's attached status in compat ioctls  Syzbot identified an issue [1] that crashes kernel, seemingly due to unexistent callback dev->get_valid_routes(). By all means, this should not occur as said callback must always be set to get_zero_valid_routes() in __comedi_device_postconfig().  As the crash seems to appear exclusively in i386 kernels, at least, judging from [1] reports, the blame lies with compat versions of standard IOCTL handlers. Several of them are modified and do not use comedi_unlocked_ioctl(). While functionality of these ioctls essentially copy their original versions, they do not have required sanity check for device's attached status. This, in turn, leads to a possibility of calling select IOCTLs on a device that has not been properly setup, even via COMEDI_DEVCONFIG.  Doing so on unconfigured devices means that several crucial steps are missed, for instance, specifying dev->get_valid_routes() callback.  Fix this somewhat crudely by ensuring device's attached status before performing any ioctls, improving logic consistency between modern and compat functions.  [1] Syzbot report: BUG: kernel NULL pointer dereference, address: 0000000000000000 ... CR2: ffffffffffffffd6 CR3: 000000006c717000 CR4: 0000000000352ef0 Call Trace:  <TASK>  get_valid_routes drivers/comedi/comedi_fops.c:1322 [inline]  parse_insn+0x78c/0x1970 drivers/comedi/comedi_fops.c:1401  do_insnlist_ioctl+0x272/0x700 drivers/comedi/comedi_fops.c:1594  compat_insnlist drivers/comedi/comedi_fops.c:3208 [inline]  comedi_compat_ioctl+0x810/0x990 drivers/comedi/comedi_fops.c:3273  __do_compat_sys_ioctl fs/ioctl.c:695 [inline]  __se_compat_sys_ioctl fs/ioctl.c:638 [inline]  __ia32_compat_sys_ioctl+0x242/0x370 fs/ioctl.c:638  do_syscall_32_irqs_on arch/x86/entry/syscall_32.c:83 [inline] ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68258",
                                "url": "https://ubuntu.com/security/CVE-2025-68258",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: multiq3: sanitize config options in multiq3_attach()  Syzbot identified an issue [1] in multiq3_attach() that induces a task timeout due to open() or COMEDI_DEVCONFIG ioctl operations, specifically, in the case of multiq3 driver.  This problem arose when syzkaller managed to craft weird configuration options used to specify the number of channels in encoder subdevice. If a particularly great number is passed to s->n_chan in multiq3_attach() via it->options[2], then multiple calls to multiq3_encoder_reset() at the end of driver-specific attach() method will be running for minutes, thus blocking tasks and affected devices as well.  While this issue is most likely not too dangerous for real-life devices, it still makes sense to sanitize configuration inputs. Enable a sensible limit on the number of encoder chips (4 chips max, each with 2 channels) to stop this behaviour from manifesting.  [1] Syzbot crash: INFO: task syz.2.19:6067 blocked for more than 143 seconds. ... Call Trace:  <TASK>  context_switch kernel/sched/core.c:5254 [inline]  __schedule+0x17c4/0x4d60 kernel/sched/core.c:6862  __schedule_loop kernel/sched/core.c:6944 [inline]  schedule+0x165/0x360 kernel/sched/core.c:6959  schedule_preempt_disabled+0x13/0x30 kernel/sched/core.c:7016  __mutex_lock_common kernel/locking/mutex.c:676 [inline]  __mutex_lock+0x7e6/0x1350 kernel/locking/mutex.c:760  comedi_open+0xc0/0x590 drivers/comedi/comedi_fops.c:2868  chrdev_open+0x4cc/0x5e0 fs/char_dev.c:414  do_dentry_open+0x953/0x13f0 fs/open.c:965  vfs_open+0x3b/0x340 fs/open.c:1097 ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68332",
                                "url": "https://ubuntu.com/security/CVE-2025-68332",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: c6xdigio: Fix invalid PNP driver unregistration  The Comedi low-level driver \"c6xdigio\" seems to be for a parallel port connected device.  When the Comedi core calls the driver's Comedi \"attach\" handler `c6xdigio_attach()` to configure a Comedi to use this driver, it tries to enable the parallel port PNP resources by registering a PNP driver with `pnp_register_driver()`, but ignores the return value.  (The `struct pnp_driver` it uses has only the `name` and `id_table` members filled in.)  The driver's Comedi \"detach\" handler `c6xdigio_detach()` unconditionally unregisters the PNP driver with `pnp_unregister_driver()`.  It is possible for `c6xdigio_attach()` to return an error before it calls `pnp_register_driver()` and it is possible for the call to `pnp_register_driver()` to return an error (that is ignored).  In both cases, the driver should not be calling `pnp_unregister_driver()` as it does in `c6xdigio_detach()`.  (Note that `c6xdigio_detach()` will be called by the Comedi core if `c6xdigio_attach()` returns an error, or if the Comedi core decides to detach the Comedi device from the driver for some other reason.)  The unconditional call to `pnp_unregister_driver()` without a previous successful call to `pnp_register_driver()` will cause `driver_unregister()` to issue a warning \"Unexpected driver unregister!\".  This was detected by Syzbot [1].  Also, the PNP driver registration and unregistration should be done at module init and exit time, respectively, not when attaching or detaching Comedi devices to the driver.  (There might be more than one Comedi device being attached to the driver, although that is unlikely.)  Change the driver to do the PNP driver registration at module init time, and the unregistration at module exit time.  Since `c6xdigio_detach()` now only calls `comedi_legacy_detach()`, remove the function and change the Comedi driver \"detach\" handler to `comedi_legacy_detach`.  ------------------------------------------- [1] Syzbot sample crash report: Unexpected driver unregister! WARNING: CPU: 0 PID: 5970 at drivers/base/driver.c:273 driver_unregister drivers/base/driver.c:273 [inline] WARNING: CPU: 0 PID: 5970 at drivers/base/driver.c:273 driver_unregister+0x90/0xb0 drivers/base/driver.c:270 Modules linked in: CPU: 0 UID: 0 PID: 5970 Comm: syz.0.17 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 RIP: 0010:driver_unregister drivers/base/driver.c:273 [inline] RIP: 0010:driver_unregister+0x90/0xb0 drivers/base/driver.c:270 Code: 48 89 ef e8 c2 e6 82 fc 48 89 df e8 3a 93 ff ff 5b 5d e9 c3 6d d9 fb e8 be 6d d9 fb 90 48 c7 c7 e0 f8 1f 8c e8 51 a2 97 fb 90 <0f> 0b 90 90 5b 5d e9 a5 6d d9 fb e8 e0 f4 41 fc eb 94 e8 d9 f4 41 RSP: 0018:ffffc9000373f9a0 EFLAGS: 00010282 RAX: 0000000000000000 RBX: ffffffff8ff24720 RCX: ffffffff817b6ee8 RDX: ffff88807c932480 RSI: ffffffff817b6ef5 RDI: 0000000000000001 RBP: 0000000000000000 R08: 0000000000000001 R09: 0000000000000000 R10: 0000000000000001 R11: 0000000000000001 R12: ffffffff8ff24660 R13: dffffc0000000000 R14: 0000000000000000 R15: ffff88814cca0000 FS:  000055556dab1500(0000) GS:ffff8881249d9000(0000) knlGS:0000000000000000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 000055f77f285cd0 CR3: 000000007d871000 CR4: 00000000003526f0 Call Trace:  <TASK>  comedi_device_detach_locked+0x12f/0xa50 drivers/comedi/drivers.c:207  comedi_device_detach+0x67/0xb0 drivers/comedi/drivers.c:215  comedi_device_attach+0x43d/0x900 drivers/comedi/drivers.c:1011  do_devconfig_ioctl+0x1b1/0x710 drivers/comedi/comedi_fops.c:872  comedi_unlocked_ioctl+0x165d/0x2f00 drivers/comedi/comedi_fops.c:2178  vfs_ioctl fs/ioctl.c:51 [inline]  __do_sys_ioctl fs/ioctl.c:597 [inline]  __se_sys_ioctl fs/ioctl.c:583 [inline]  __x64_sys_ioctl+0x18e/0x210 fs/ioctl.c:583  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_sys ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68266",
                                "url": "https://ubuntu.com/security/CVE-2025-68266",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bfs: Reconstruct file type when loading from disk  syzbot is reporting that S_IFMT bits of inode->i_mode can become bogus when the S_IFMT bits of the 32bits \"mode\" field loaded from disk are corrupted or when the 32bits \"attributes\" field loaded from disk are corrupted.  A documentation says that BFS uses only lower 9 bits of the \"mode\" field. But I can't find an explicit explanation that the unused upper 23 bits (especially, the S_IFMT bits) are initialized with 0.  Therefore, ignore the S_IFMT bits of the \"mode\" field loaded from disk. Also, verify that the value of the \"attributes\" field loaded from disk is either BFS_VREG or BFS_VDIR (because BFS supports only regular files and the root directory).",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68335",
                                "url": "https://ubuntu.com/security/CVE-2025-68335",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  comedi: pcl818: fix null-ptr-deref in pcl818_ai_cancel()  Syzbot identified an issue [1] in pcl818_ai_cancel(), which stems from the fact that in case of early device detach via pcl818_detach(), subdevice dev->read_subdev may not have initialized its pointer to &struct comedi_async as intended. Thus, any such dereferencing of &s->async->cmd will lead to general protection fault and kernel crash.  Mitigate this problem by removing a call to pcl818_ai_cancel() from pcl818_detach() altogether. This way, if the subdevice setups its support for async commands, everything async-related will be handled via subdevice's own ->cancel() function in comedi_device_detach_locked() even before pcl818_detach(). If no support for asynchronous commands is provided, there is no need to cancel anything either.  [1] Syzbot crash: Oops: general protection fault, probably for non-canonical address 0xdffffc0000000005: 0000 [#1] SMP KASAN PTI KASAN: null-ptr-deref in range [0x0000000000000028-0x000000000000002f] CPU: 1 UID: 0 PID: 6050 Comm: syz.0.18 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025 RIP: 0010:pcl818_ai_cancel+0x69/0x3f0 drivers/comedi/drivers/pcl818.c:762 ... Call Trace:  <TASK>  pcl818_detach+0x66/0xd0 drivers/comedi/drivers/pcl818.c:1115  comedi_device_detach_locked+0x178/0x750 drivers/comedi/drivers.c:207  do_devconfig_ioctl drivers/comedi/comedi_fops.c:848 [inline]  comedi_unlocked_ioctl+0xcde/0x1020 drivers/comedi/comedi_fops.c:2178  vfs_ioctl fs/ioctl.c:51 [inline]  __do_sys_ioctl fs/ioctl.c:597 [inline] ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68261",
                                "url": "https://ubuntu.com/security/CVE-2025-68261",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock()  Fix a race between inline data destruction and block mapping.  The function ext4_destroy_inline_data_nolock() changes the inode data layout by clearing EXT4_INODE_INLINE_DATA and setting EXT4_INODE_EXTENTS. At the same time, another thread may execute ext4_map_blocks(), which tests EXT4_INODE_EXTENTS to decide whether to call ext4_ext_map_blocks() or ext4_ind_map_blocks().  Without i_data_sem protection, ext4_ind_map_blocks() may receive inode with EXT4_INODE_EXTENTS flag and triggering assert.  kernel BUG at fs/ext4/indirect.c:546! EXT4-fs (loop2): unmounting filesystem. invalid opcode: 0000 [#1] PREEMPT SMP KASAN NOPTI Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:ext4_ind_map_blocks.cold+0x2b/0x5a fs/ext4/indirect.c:546  Call Trace:  <TASK>  ext4_map_blocks+0xb9b/0x16f0 fs/ext4/inode.c:681  _ext4_get_block+0x242/0x590 fs/ext4/inode.c:822  ext4_block_write_begin+0x48b/0x12c0 fs/ext4/inode.c:1124  ext4_write_begin+0x598/0xef0 fs/ext4/inode.c:1255  ext4_da_write_begin+0x21e/0x9c0 fs/ext4/inode.c:3000  generic_perform_write+0x259/0x5d0 mm/filemap.c:3846  ext4_buffered_write_iter+0x15b/0x470 fs/ext4/file.c:285  ext4_file_write_iter+0x8e0/0x17f0 fs/ext4/file.c:679  call_write_iter include/linux/fs.h:2271 [inline]  do_iter_readv_writev+0x212/0x3c0 fs/read_write.c:735  do_iter_write+0x186/0x710 fs/read_write.c:861  vfs_iter_write+0x70/0xa0 fs/read_write.c:902  iter_file_splice_write+0x73b/0xc90 fs/splice.c:685  do_splice_from fs/splice.c:763 [inline]  direct_splice_actor+0x10f/0x170 fs/splice.c:950  splice_direct_to_actor+0x33a/0xa10 fs/splice.c:896  do_splice_direct+0x1a9/0x280 fs/splice.c:1002  do_sendfile+0xb13/0x12c0 fs/read_write.c:1255  __do_sys_sendfile64 fs/read_write.c:1323 [inline]  __se_sys_sendfile64 fs/read_write.c:1309 [inline]  __x64_sys_sendfile64+0x1cf/0x210 fs/read_write.c:1309  do_syscall_x64 arch/x86/entry/common.c:51 [inline]  do_syscall_64+0x35/0x80 arch/x86/entry/common.c:81  entry_SYSCALL_64_after_hwframe+0x6e/0xd8",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68336",
                                "url": "https://ubuntu.com/security/CVE-2025-68336",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  locking/spinlock/debug: Fix data-race in do_raw_write_lock  KCSAN reports:  BUG: KCSAN: data-race in do_raw_write_lock / do_raw_write_lock  write (marked) to 0xffff800009cf504c of 4 bytes by task 1102 on cpu 1:  do_raw_write_lock+0x120/0x204  _raw_write_lock_irq  do_exit  call_usermodehelper_exec_async  ret_from_fork  read to 0xffff800009cf504c of 4 bytes by task 1103 on cpu 0:  do_raw_write_lock+0x88/0x204  _raw_write_lock_irq  do_exit  call_usermodehelper_exec_async  ret_from_fork  value changed: 0xffffffff -> 0x00000001  Reported by Kernel Concurrency Sanitizer on: CPU: 0 PID: 1103 Comm: kworker/u4:1 6.1.111  Commit 1a365e822372 (\"locking/spinlock/debug: Fix various data races\") has adressed most of these races, but seems to be not consistent/not complete.  >From do_raw_write_lock() only debug_write_lock_after() part has been converted to WRITE_ONCE(), but not debug_write_lock_before() part. Do it now.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68264",
                                "url": "https://ubuntu.com/security/CVE-2025-68264",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ext4: refresh inline data size before write operations  The cached ei->i_inline_size can become stale between the initial size check and when ext4_update_inline_data()/ext4_create_inline_data() use it. Although ext4_get_max_inline_size() reads the correct value at the time of the check, concurrent xattr operations can modify i_inline_size before ext4_write_lock_xattr() is acquired.  This causes ext4_update_inline_data() and ext4_create_inline_data() to work with stale capacity values, leading to a BUG_ON() crash in ext4_write_inline_data():    kernel BUG at fs/ext4/inline.c:1331!   BUG_ON(pos + len > EXT4_I(inode)->i_inline_size);  The race window: 1. ext4_get_max_inline_size() reads i_inline_size = 60 (correct) 2. Size check passes for 50-byte write 3. [Another thread adds xattr, i_inline_size changes to 40] 4. ext4_write_lock_xattr() acquires lock 5. ext4_update_inline_data() uses stale i_inline_size = 60 6. Attempts to write 50 bytes but only 40 bytes actually available 7. BUG_ON() triggers  Fix this by recalculating i_inline_size via ext4_find_inline_data_nolock() immediately after acquiring xattr_sem. This ensures ext4_update_inline_data() and ext4_create_inline_data() work with current values that are protected from concurrent modifications.  This is similar to commit a54c4613dac1 (\"ext4: fix race writing to an inline_data file while its xattrs are changing\") which fixed i_inline_off staleness. This patch addresses the related i_inline_size staleness issue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68337",
                                "url": "https://ubuntu.com/security/CVE-2025-68337",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system corrupted  There's issue when file system corrupted: ------------[ cut here ]------------ kernel BUG at fs/jbd2/transaction.c:1289! Oops: invalid opcode: 0000 [#1] SMP KASAN PTI CPU: 5 UID: 0 PID: 2031 Comm: mkdir Not tainted 6.18.0-rc1-next RIP: 0010:jbd2_journal_get_create_access+0x3b6/0x4d0 RSP: 0018:ffff888117aafa30 EFLAGS: 00010202 RAX: 0000000000000000 RBX: ffff88811a86b000 RCX: ffffffff89a63534 RDX: 1ffff110200ec602 RSI: 0000000000000004 RDI: ffff888100763010 RBP: ffff888100763000 R08: 0000000000000001 R09: ffff888100763028 R10: 0000000000000003 R11: 0000000000000000 R12: 0000000000000000 R13: ffff88812c432000 R14: ffff88812c608000 R15: ffff888120bfc000 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f91d6970c99 CR3: 00000001159c4000 CR4: 00000000000006f0 Call Trace:  <TASK>  __ext4_journal_get_create_access+0x42/0x170  ext4_getblk+0x319/0x6f0  ext4_bread+0x11/0x100  ext4_append+0x1e6/0x4a0  ext4_init_new_dir+0x145/0x1d0  ext4_mkdir+0x326/0x920  vfs_mkdir+0x45c/0x740  do_mkdirat+0x234/0x2f0  __x64_sys_mkdir+0xd6/0x120  do_syscall_64+0x5f/0xfa0  entry_SYSCALL_64_after_hwframe+0x76/0x7e  The above issue occurs with us in errors=continue mode when accompanied by storage failures. There have been many inconsistencies in the file system data. In the case of file system data inconsistency, for example, if the block bitmap of a referenced block is not set, it can lead to the situation where a block being committed is allocated and used again. As a result, the following condition will not be satisfied then trigger BUG_ON. Of course, it is entirely possible to construct a problematic image that can trigger this BUG_ON through specific operations. In fact, I have constructed such an image and easily reproduced this issue. Therefore, J_ASSERT() holds true only under ideal conditions, but it may not necessarily be satisfied in exceptional scenarios. Using J_ASSERT() directly in abnormal situations would cause the system to crash, which is clearly not what we want. So here we directly trigger a JBD abort instead of immediately invoking BUG_ON.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-47666",
                                "url": "https://ubuntu.com/security/CVE-2024-47666",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: pm80xx: Set phy->enable_completion only when we wait for it  pm8001_phy_control() populates the enable_completion pointer with a stack address, sends a PHY_LINK_RESET / PHY_HARD_RESET, waits 300 ms, and returns. The problem arises when a phy control response comes late.  After 300 ms the pm8001_phy_control() function returns and the passed enable_completion stack address is no longer valid. Late phy control response invokes complete() on a dangling enable_completion pointer which leads to a kernel crash.",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-10-09 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68327",
                                "url": "https://ubuntu.com/security/CVE-2025-68327",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: renesas_usbhs: Fix synchronous external abort on unbind  A synchronous external abort occurs on the Renesas RZ/G3S SoC if unbind is executed after the configuration sequence described above:  modprobe usb_f_ecm modprobe libcomposite modprobe configfs cd /sys/kernel/config/usb_gadget mkdir -p g1 cd g1 echo \"0x1d6b\" > idVendor echo \"0x0104\" > idProduct mkdir -p strings/0x409 echo \"0123456789\" > strings/0x409/serialnumber echo \"Renesas.\" > strings/0x409/manufacturer echo \"Ethernet Gadget\" > strings/0x409/product mkdir -p functions/ecm.usb0 mkdir -p configs/c.1 mkdir -p configs/c.1/strings/0x409 echo \"ECM\" > configs/c.1/strings/0x409/configuration  if [ ! -L configs/c.1/ecm.usb0 ]; then         ln -s functions/ecm.usb0 configs/c.1 fi  echo 11e20000.usb > UDC echo 11e20000.usb > /sys/bus/platform/drivers/renesas_usbhs/unbind  The displayed trace is as follows:   Internal error: synchronous external abort: 0000000096000010 [#1] SMP  CPU: 0 UID: 0 PID: 188 Comm: sh Tainted: G M 6.17.0-rc7-next-20250922-00010-g41050493b2bd #55 PREEMPT  Tainted: [M]=MACHINE_CHECK  Hardware name: Renesas SMARC EVK version 2 based on r9a08g045s33 (DT)  pstate: 604000c5 (nZCv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)  pc : usbhs_sys_function_pullup+0x10/0x40 [renesas_usbhs]  lr : usbhsg_update_pullup+0x3c/0x68 [renesas_usbhs]  sp : ffff8000838b3920  x29: ffff8000838b3920 x28: ffff00000d585780 x27: 0000000000000000  x26: 0000000000000000 x25: 0000000000000000 x24: ffff00000c3e3810  x23: ffff00000d5e5c80 x22: ffff00000d5e5d40 x21: 0000000000000000  x20: 0000000000000000 x19: ffff00000d5e5c80 x18: 0000000000000020  x17: 2e30303230316531 x16: 312d7968703a7968 x15: 3d454d414e5f4344  x14: 000000000000002c x13: 0000000000000000 x12: 0000000000000000  x11: ffff00000f358f38 x10: ffff00000f358db0 x9 : ffff00000b41f418  x8 : 0101010101010101 x7 : 7f7f7f7f7f7f7f7f x6 : fefefeff6364626d  x5 : 8080808000000000 x4 : 000000004b5ccb9d x3 : 0000000000000000  x2 : 0000000000000000 x1 : ffff800083790000 x0 : ffff00000d5e5c80  Call trace:  usbhs_sys_function_pullup+0x10/0x40 [renesas_usbhs] (P)  usbhsg_pullup+0x4c/0x7c [renesas_usbhs]  usb_gadget_disconnect_locked+0x48/0xd4  gadget_unbind_driver+0x44/0x114  device_remove+0x4c/0x80  device_release_driver_internal+0x1c8/0x224  device_release_driver+0x18/0x24  bus_remove_device+0xcc/0x10c  device_del+0x14c/0x404  usb_del_gadget+0x88/0xc0  usb_del_gadget_udc+0x18/0x30  usbhs_mod_gadget_remove+0x24/0x44 [renesas_usbhs]  usbhs_mod_remove+0x20/0x30 [renesas_usbhs]  usbhs_remove+0x98/0xdc [renesas_usbhs]  platform_remove+0x20/0x30  device_remove+0x4c/0x80  device_release_driver_internal+0x1c8/0x224  device_driver_detach+0x18/0x24  unbind_store+0xb4/0xb8  drv_attr_store+0x24/0x38  sysfs_kf_write+0x7c/0x94  kernfs_fop_write_iter+0x128/0x1b8  vfs_write+0x2ac/0x350  ksys_write+0x68/0xfc  __arm64_sys_write+0x1c/0x28  invoke_syscall+0x48/0x110  el0_svc_common.constprop.0+0xc0/0xe0  do_el0_svc+0x1c/0x28  el0_svc+0x34/0xf0  el0t_64_sync_handler+0xa0/0xe4  el0t_64_sync+0x198/0x19c  Code: 7100003f 1a9f07e1 531c6c22 f9400001 (79400021)  ---[ end trace 0000000000000000 ]---  note: sh[188] exited with irqs disabled  note: sh[188] exited with preempt_count 1  The issue occurs because usbhs_sys_function_pullup(), which accesses the IP registers, is executed after the USBHS clocks have been disabled. The problem is reproducible on the Renesas RZ/G3S SoC starting with the addition of module stop in the clock enable/disable APIs. With module stop functionality enabled, a bus error is expected if a master accesses a module whose clock has been stopped and module stop activated.  Disable the IP clocks at the end of remove.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68295",
                                "url": "https://ubuntu.com/security/CVE-2025-68295",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  smb: client: fix memory leak in cifs_construct_tcon()  When having a multiuser mount with domain= specified and using cifscreds, cifs_set_cifscreds() will end up setting @ctx->domainname, so it needs to be freed before leaving cifs_construct_tcon().  This fixes the following memory leak reported by kmemleak:    mount.cifs //srv/share /mnt -o domain=ZELDA,multiuser,...   su - testuser   cifscreds add -d ZELDA -u testuser   ...   ls /mnt/1   ...   umount /mnt   echo scan > /sys/kernel/debug/kmemleak   cat /sys/kernel/debug/kmemleak   unreferenced object 0xffff8881203c3f08 (size 8):     comm \"ls\", pid 5060, jiffies 4307222943     hex dump (first 8 bytes):       5a 45 4c 44 41 00 cc cc                          ZELDA...     backtrace (crc d109a8cf):       __kmalloc_node_track_caller_noprof+0x572/0x710       kstrdup+0x3a/0x70       cifs_sb_tlink+0x1209/0x1770 [cifs]       cifs_get_fattr+0xe1/0xf50 [cifs]       cifs_get_inode_info+0xb5/0x240 [cifs]       cifs_revalidate_dentry_attr+0x2d1/0x470 [cifs]       cifs_getattr+0x28e/0x450 [cifs]       vfs_getattr_nosec+0x126/0x180       vfs_statx+0xf6/0x220       do_statx+0xab/0x110       __x64_sys_statx+0xd5/0x130       do_syscall_64+0xbb/0x380       entry_SYSCALL_64_after_hwframe+0x77/0x7f",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68227",
                                "url": "https://ubuntu.com/security/CVE-2025-68227",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: Fix proto fallback detection with BPF  The sockmap feature allows bpf syscall from userspace, or based on bpf sockops, replacing the sk_prot of sockets during protocol stack processing with sockmap's custom read/write interfaces. ''' tcp_rcv_state_process()   syn_recv_sock()/subflow_syn_recv_sock()     tcp_init_transfer(BPF_SOCK_OPS_PASSIVE_ESTABLISHED_CB)       bpf_skops_established       <== sockops         bpf_sock_map_update(sk)   <== call bpf helper           tcp_bpf_update_proto()  <== update sk_prot '''  When the server has MPTCP enabled but the client sends a TCP SYN without MPTCP, subflow_syn_recv_sock() performs a fallback on the subflow, replacing the subflow sk's sk_prot with the native sk_prot. ''' subflow_syn_recv_sock()   subflow_ulp_fallback()     subflow_drop_ctx()       mptcp_subflow_ops_undo_override() '''  Then, this subflow can be normally used by sockmap, which replaces the native sk_prot with sockmap's custom sk_prot. The issue occurs when the user executes accept::mptcp_stream_accept::mptcp_fallback_tcp_ops(). Here, it uses sk->sk_prot to compare with the native sk_prot, but this is incorrect when sockmap is used, as we may incorrectly set sk->sk_socket->ops.  This fix uses the more generic sk_family for the comparison instead.  Additionally, this also prevents a WARNING from occurring:  result from ./scripts/decode_stacktrace.sh: ------------[ cut here ]------------ WARNING: CPU: 0 PID: 337 at net/mptcp/protocol.c:68 mptcp_stream_accept \\ (net/mptcp/protocol.c:4005) Modules linked in: ...  PKRU: 55555554 Call Trace: <TASK> do_accept (net/socket.c:1989) __sys_accept4 (net/socket.c:2028 net/socket.c:2057) __x64_sys_accept (net/socket.c:2067) x64_sys_call (arch/x86/entry/syscall_64.c:41) do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) RIP: 0033:0x7f87ac92b83d  ---[ end trace 0000000000000000 ]---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68284",
                                "url": "https://ubuntu.com/security/CVE-2025-68284",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: prevent potential out-of-bounds writes in handle_auth_session_key()  The len field originates from untrusted network packets. Boundary checks have been added to prevent potential out-of-bounds writes when decrypting the connection secret or processing service tickets.  [ idryomov: changelog ]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68285",
                                "url": "https://ubuntu.com/security/CVE-2025-68285",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  libceph: fix potential use-after-free in have_mon_and_osd_map()  The wait loop in __ceph_open_session() can race with the client receiving a new monmap or osdmap shortly after the initial map is received.  Both ceph_monc_handle_map() and handle_one_map() install a new map immediately after freeing the old one      kfree(monc->monmap);     monc->monmap = monmap;      ceph_osdmap_destroy(osdc->osdmap);     osdc->osdmap = newmap;  under client->monc.mutex and client->osdc.lock respectively, but because neither is taken in have_mon_and_osd_map() it's possible for client->monc.monmap->epoch and client->osdc.osdmap->epoch arms in      client->monc.monmap && client->monc.monmap->epoch &&         client->osdc.osdmap && client->osdc.osdmap->epoch;  condition to dereference an already freed map.  This happens to be reproducible with generic/395 and generic/397 with KASAN enabled:      BUG: KASAN: slab-use-after-free in have_mon_and_osd_map+0x56/0x70     Read of size 4 at addr ffff88811012d810 by task mount.ceph/13305     CPU: 2 UID: 0 PID: 13305 Comm: mount.ceph Not tainted 6.14.0-rc2-build2+ #1266     ...     Call Trace:     <TASK>     have_mon_and_osd_map+0x56/0x70     ceph_open_session+0x182/0x290     ceph_get_tree+0x333/0x680     vfs_get_tree+0x49/0x180     do_new_mount+0x1a3/0x2d0     path_mount+0x6dd/0x730     do_mount+0x99/0xe0     __do_sys_mount+0x141/0x180     do_syscall_64+0x9f/0x100     entry_SYSCALL_64_after_hwframe+0x76/0x7e     </TASK>      Allocated by task 13305:     ceph_osdmap_alloc+0x16/0x130     ceph_osdc_init+0x27a/0x4c0     ceph_create_client+0x153/0x190     create_fs_client+0x50/0x2a0     ceph_get_tree+0xff/0x680     vfs_get_tree+0x49/0x180     do_new_mount+0x1a3/0x2d0     path_mount+0x6dd/0x730     do_mount+0x99/0xe0     __do_sys_mount+0x141/0x180     do_syscall_64+0x9f/0x100     entry_SYSCALL_64_after_hwframe+0x76/0x7e      Freed by task 9475:     kfree+0x212/0x290     handle_one_map+0x23c/0x3b0     ceph_osdc_handle_map+0x3c9/0x590     mon_dispatch+0x655/0x6f0     ceph_con_process_message+0xc3/0xe0     ceph_con_v1_try_read+0x614/0x760     ceph_con_workfn+0x2de/0x650     process_one_work+0x486/0x7c0     process_scheduled_works+0x73/0x90     worker_thread+0x1c8/0x2a0     kthread+0x2ec/0x300     ret_from_fork+0x24/0x40     ret_from_fork_asm+0x1a/0x30  Rewrite the wait loop to check the above condition directly with client->monc.mutex and client->osdc.lock taken as appropriate.  While at it, improve the timeout handling (previously mount_timeout could be exceeded in case wait_event_interruptible_timeout() slept more than once) and access client->auth_err under client->monc.mutex to match how it's set in finish_auth().  monmap_show() and osdmap_show() now take the respective lock before accessing the map as well.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68286",
                                "url": "https://ubuntu.com/security/CVE-2025-68286",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amd/display: Check NULL before accessing  [WHAT] IGT kms_cursor_legacy's long-nonblocking-modeset-vs-cursor-atomic fails with NULL pointer dereference. This can be reproduced with both an eDP panel and a DP monitors connected.   BUG: kernel NULL pointer dereference, address: 0000000000000000  #PF: supervisor read access in kernel mode  #PF: error_code(0x0000) - not-present page  PGD 0 P4D 0  Oops: Oops: 0000 [#1] SMP NOPTI  CPU: 13 UID: 0 PID: 2960 Comm: kms_cursor_lega Not tainted 6.16.0-99-custom #8 PREEMPT(voluntary)  Hardware name: AMD ........  RIP: 0010:dc_stream_get_scanoutpos+0x34/0x130 [amdgpu]  Code: 57 4d 89 c7 41 56 49 89 ce 41 55 49 89 d5 41 54 49  89 fc 53 48 83 ec 18 48 8b 87 a0 64 00 00 48 89 75 d0 48 c7 c6 e0 41 30  c2 <48> 8b 38 48 8b 9f 68 06 00 00 e8 8d d7 fd ff 31 c0 48 81 c3 e0 02  RSP: 0018:ffffd0f3c2bd7608 EFLAGS: 00010292  RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffd0f3c2bd7668  RDX: ffffd0f3c2bd7664 RSI: ffffffffc23041e0 RDI: ffff8b32494b8000  RBP: ffffd0f3c2bd7648 R08: ffffd0f3c2bd766c R09: ffffd0f3c2bd7760  R10: ffffd0f3c2bd7820 R11: 0000000000000000 R12: ffff8b32494b8000  R13: ffffd0f3c2bd7664 R14: ffffd0f3c2bd7668 R15: ffffd0f3c2bd766c  FS:  000071f631b68700(0000) GS:ffff8b399f114000(0000) knlGS:0000000000000000  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033  CR2: 0000000000000000 CR3: 00000001b8105000 CR4: 0000000000f50ef0  PKRU: 55555554  Call Trace:  <TASK>  dm_crtc_get_scanoutpos+0xd7/0x180 [amdgpu]  amdgpu_display_get_crtc_scanoutpos+0x86/0x1c0 [amdgpu]  ? __pfx_amdgpu_crtc_get_scanout_position+0x10/0x10[amdgpu]  amdgpu_crtc_get_scanout_position+0x27/0x50 [amdgpu]  drm_crtc_vblank_helper_get_vblank_timestamp_internal+0xf7/0x400  drm_crtc_vblank_helper_get_vblank_timestamp+0x1c/0x30  drm_crtc_get_last_vbltimestamp+0x55/0x90  drm_crtc_next_vblank_start+0x45/0xa0  drm_atomic_helper_wait_for_fences+0x81/0x1f0  ...  (cherry picked from commit 621e55f1919640acab25383362b96e65f2baea3c)",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68287",
                                "url": "https://ubuntu.com/security/CVE-2025-68287",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: dwc3: Fix race condition between concurrent dwc3_remove_requests() call paths  This patch addresses a race condition caused by unsynchronized execution of multiple call paths invoking `dwc3_remove_requests()`, leading to premature freeing of USB requests and subsequent crashes.  Three distinct execution paths interact with `dwc3_remove_requests()`: Path 1: Triggered via `dwc3_gadget_reset_interrupt()` during USB reset handling. The call stack includes: - `dwc3_ep0_reset_state()` - `dwc3_ep0_stall_and_restart()` - `dwc3_ep0_out_start()` - `dwc3_remove_requests()` - `dwc3_gadget_del_and_unmap_request()`  Path 2: Also initiated from `dwc3_gadget_reset_interrupt()`, but through `dwc3_stop_active_transfers()`. The call stack includes: - `dwc3_stop_active_transfers()` - `dwc3_remove_requests()` - `dwc3_gadget_del_and_unmap_request()`  Path 3: Occurs independently during `adb root` execution, which triggers USB function unbind and bind operations. The sequence includes: - `gserial_disconnect()` - `usb_ep_disable()` - `dwc3_gadget_ep_disable()` - `dwc3_remove_requests()` with `-ESHUTDOWN` status  Path 3 operates asynchronously and lacks synchronization with Paths 1 and 2. When Path 3 completes, it disables endpoints and frees 'out' requests. If Paths 1 or 2 are still processing these requests, accessing freed memory leads to a crash due to use-after-free conditions.  To fix this added check for request completion and skip processing if already completed and added the request status for ep0 while queue.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68331",
                                "url": "https://ubuntu.com/security/CVE-2025-68331",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: uas: fix urb unmapping issue when the uas device is remove during ongoing data transfer  When a UAS device is unplugged during data transfer, there is a probability of a system panic occurring. The root cause is an access to an invalid memory address during URB callback handling. Specifically, this happens when the dma_direct_unmap_sg() function is called within the usb_hcd_unmap_urb_for_dma() interface, but the sg->dma_address field is 0 and the sg data structure has already been freed.  The SCSI driver sends transfer commands by invoking uas_queuecommand_lck() in uas.c, using the uas_submit_urbs() function to submit requests to USB. Within the uas_submit_urbs() implementation, three URBs (sense_urb, data_urb, and cmd_urb) are sequentially submitted. Device removal may occur at any point during uas_submit_urbs execution, which may result in URB submission failure. However, some URBs might have been successfully submitted before the failure, and uas_submit_urbs will return the -ENODEV error code in this case. The current error handling directly calls scsi_done(). In the SCSI driver, this eventually triggers scsi_complete() to invoke scsi_end_request() for releasing the sgtable. The successfully submitted URBs, when being unlinked to giveback, call usb_hcd_unmap_urb_for_dma() in hcd.c, leading to exceptions during sg unmapping operations since the sg data structure has already been freed.  This patch modifies the error condition check in the uas_submit_urbs() function. When a UAS device is removed but one or more URBs have already been successfully submitted to USB, it avoids immediately invoking scsi_done() and save the cmnd to devinfo->cmnd array. If the successfully submitted URBs is completed before devinfo->resetting being set, then the scsi_done() function will be called within uas_try_complete() after all pending URB operations are finalized. Otherwise, the scsi_done() function will be called within uas_zap_pending(), which is executed after usb_kill_anchored_urbs().  The error handling only takes effect when uas_queuecommand_lck() calls uas_submit_urbs() and returns the error value -ENODEV . In this case, the device is disconnected, and the flow proceeds to uas_disconnect(), where uas_zap_pending() is invoked to call uas_try_complete().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40345",
                                "url": "https://ubuntu.com/security/CVE-2025-40345",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: storage: sddr55: Reject out-of-bound new_pba  Discovered by Atuin - Automated Vulnerability Discovery Engine.  new_pba comes from the status packet returned after each write. A bogus device could report values beyond the block count derived from info->capacity, letting the driver walk off the end of pba_to_lba[] and corrupt heap memory.  Reject PBAs that exceed the computed block count and fail the transfer so we avoid touching out-of-range mapping entries.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-12 18:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68288",
                                "url": "https://ubuntu.com/security/CVE-2025-68288",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: storage: Fix memory leak in USB bulk transport  A kernel memory leak was identified by the 'ioctl_sg01' test from Linux Test Project (LTP). The following bytes were mainly observed: 0x53425355.  When USB storage devices incorrectly skip the data phase with status data, the code extracts/validates the CSW from the sg buffer, but fails to clear it afterwards. This leaves status protocol data in srb's transfer buffer, such as the US_BULK_CS_SIGN 'USBS' signature observed here. Thus, this can lead to USB protocols leaks to user space through SCSI generic (/dev/sg*) interfaces, such as the one seen here when the LTP test requested 512 KiB.  Fix the leak by zeroing the CSW data in srb's transfer buffer immediately after the validation of devices that skip data phase.  Note: Differently from CVE-2018-1000204, which fixed a big leak by zero- ing pages at allocation time, this leak occurs after allocation, when USB protocol data is written to already-allocated sg pages.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68289",
                                "url": "https://ubuntu.com/security/CVE-2025-68289",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: f_eem: Fix memory leak in eem_unwrap  The existing code did not handle the failure case of usb_ep_queue in the command path, potentially leading to memory leaks.  Improve error handling to free all allocated resources on usb_ep_queue failure. This patch continues to use goto logic for error handling, as the existing error handling is complex and not easily adaptable to auto-cleanup helpers.  kmemleak results:   unreferenced object 0xffffff895a512300 (size 240):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       kmem_cache_alloc+0x1b4/0x358       skb_clone+0x90/0xd8       eem_unwrap+0x1cc/0x36c   unreferenced object 0xffffff8a157f4000 (size 256):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       kmalloc_trace+0x48/0x140       dwc3_gadget_ep_alloc_request+0x58/0x11c       usb_ep_alloc_request+0x40/0xe4       eem_unwrap+0x204/0x36c   unreferenced object 0xffffff8aadbaac00 (size 128):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       __kmalloc+0x64/0x1a8       eem_unwrap+0x218/0x36c   unreferenced object 0xffffff89ccef3500 (size 64):     backtrace:       slab_post_alloc_hook+0xbc/0x3a4       __kmem_cache_alloc_node+0x1b4/0x2dc       kmalloc_trace+0x48/0x140       eem_unwrap+0x238/0x36c",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68290",
                                "url": "https://ubuntu.com/security/CVE-2025-68290",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  most: usb: fix double free on late probe failure  The MOST subsystem has a non-standard registration function which frees the interface on registration failures and on deregistration.  This unsurprisingly leads to bugs in the MOST drivers, and a couple of recent changes turned a reference underflow and use-after-free in the USB driver into several double free and a use-after-free on late probe failures.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68328",
                                "url": "https://ubuntu.com/security/CVE-2025-68328",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  firmware: stratix10-svc: fix bug in saving controller data  Fix the incorrect usage of platform_set_drvdata and dev_set_drvdata. They both are of the same data and overrides each other. This resulted in the rmmod of the svc driver to fail and throw a kernel panic for kthread_stop and fifo free.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68339",
                                "url": "https://ubuntu.com/security/CVE-2025-68339",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  atm/fore200e: Fix possible data race in fore200e_open()  Protect access to fore200e->available_cell_rate with rate_mtx lock in the error handling path of fore200e_open() to prevent a data race.  The field fore200e->available_cell_rate is a shared resource used to track available bandwidth. It is concurrently accessed by fore200e_open(), fore200e_close(), and fore200e_change_qos().  In fore200e_open(), the lock rate_mtx is correctly held when subtracting vcc->qos.txtp.max_pcr from available_cell_rate to reserve bandwidth. However, if the subsequent call to fore200e_activate_vcin() fails, the function restores the reserved bandwidth by adding back to available_cell_rate without holding the lock.  This introduces a race condition because available_cell_rate is a global device resource shared across all VCCs. If the error path in fore200e_open() executes concurrently with operations like fore200e_close() or fore200e_change_qos() on other VCCs, a read-modify-write race occurs.  Specifically, the error path reads the rate without the lock. If another CPU acquires the lock and modifies the rate (e.g., releasing bandwidth in fore200e_close()) between this read and the subsequent write, the error path will overwrite the concurrent update with a stale value. This results in incorrect bandwidth accounting.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-23 14:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68330",
                                "url": "https://ubuntu.com/security/CVE-2025-68330",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  iio: accel: bmc150: Fix irq assumption regression  The code in bmc150-accel-core.c unconditionally calls bmc150_accel_set_interrupt() in the iio_buffer_setup_ops, such as on the runtime PM resume path giving a kernel splat like this if the device has no interrupts:  Unable to handle kernel NULL pointer dereference at virtual   address 00000001 when read  PC is at bmc150_accel_set_interrupt+0x98/0x194 LR is at __pm_runtime_resume+0x5c/0x64 (...) Call trace: bmc150_accel_set_interrupt from bmc150_accel_buffer_postenable+0x40/0x108 bmc150_accel_buffer_postenable from __iio_update_buffers+0xbe0/0xcbc __iio_update_buffers from enable_store+0x84/0xc8 enable_store from kernfs_fop_write_iter+0x154/0x1b4  This bug seems to have been in the driver since the beginning, but it only manifests recently, I do not know why.  Store the IRQ number in the state struct, as this is a common pattern in other drivers, then use this to determine if we have IRQ support or not.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-22 17:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68301",
                                "url": "https://ubuntu.com/security/CVE-2025-68301",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: atlantic: fix fragment overflow handling in RX path  The atlantic driver can receive packets with more than MAX_SKB_FRAGS (17) fragments when handling large multi-descriptor packets. This causes an out-of-bounds write in skb_add_rx_frag_netmem() leading to kernel panic.  The issue occurs because the driver doesn't check the total number of fragments before calling skb_add_rx_frag(). When a packet requires more than MAX_SKB_FRAGS fragments, the fragment index exceeds the array bounds.  Fix by assuming there will be an extra frag if buff->len > AQ_CFG_RX_HDR_SIZE, then all fragments are accounted for. And reusing the existing check to prevent the overflow earlier in the code path.  This crash occurred in production with an Aquantia AQC113 10G NIC.  Stack trace from production environment: ``` RIP: 0010:skb_add_rx_frag_netmem+0x29/0xd0 Code: 90 f3 0f 1e fa 0f 1f 44 00 00 48 89 f8 41 89 ca 48 89 d7 48 63 ce 8b 90 c0 00 00 00 48 c1 e1 04 48 01 ca 48 03 90 c8 00 00 00 <48> 89 7a 30 44 89 52 3c 44 89 42 38 40 f6 c7 01 75 74 48 89 fa 83 RSP: 0018:ffffa9bec02a8d50 EFLAGS: 00010287 RAX: ffff925b22e80a00 RBX: ffff925ad38d2700 RCX: fffffffe0a0c8000 RDX: ffff9258ea95bac0 RSI: ffff925ae0a0c800 RDI: 0000000000037a40 RBP: 0000000000000024 R08: 0000000000000000 R09: 0000000000000021 R10: 0000000000000848 R11: 0000000000000000 R12: ffffa9bec02a8e24 R13: ffff925ad8615570 R14: 0000000000000000 R15: ffff925b22e80a00 FS: 0000000000000000(0000) GS:ffff925e47880000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: ffff9258ea95baf0 CR3: 0000000166022004 CR4: 0000000000f72ef0 PKRU: 55555554 Call Trace: <IRQ> aq_ring_rx_clean+0x175/0xe60 [atlantic] ? aq_ring_rx_clean+0x14d/0xe60 [atlantic] ? aq_ring_tx_clean+0xdf/0x190 [atlantic] ? kmem_cache_free+0x348/0x450 ? aq_vec_poll+0x81/0x1d0 [atlantic] ? __napi_poll+0x28/0x1c0 ? net_rx_action+0x337/0x420 ```  Changes in v4: - Add Fixes: tag to satisfy patch validation requirements.  Changes in v3: - Fix by assuming there will be an extra frag if buff->len > AQ_CFG_RX_HDR_SIZE,   then all fragments are accounted for.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68302",
                                "url": "https://ubuntu.com/security/CVE-2025-68302",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sxgbe: fix potential NULL dereference in sxgbe_rx()  Currently, when skb is null, the driver prints an error and then dereferences skb on the next line.  To fix this, let's add a 'break' after the error message to switch to sxgbe_rx_refill(), which is similar to the approach taken by the other drivers in this particular case, e.g. calxeda with xgmac_rx().  Found during a code review.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68303",
                                "url": "https://ubuntu.com/security/CVE-2025-68303",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  platform/x86: intel: punit_ipc: fix memory corruption  This passes the address of the pointer \"&punit_ipcdev\" when the intent was to pass the pointer itself \"punit_ipcdev\" (without the ampersand). This means that the:  \tcomplete(&ipcdev->cmd_complete);  in intel_punit_ioc() will write to a wrong memory address corrupting it.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68308",
                                "url": "https://ubuntu.com/security/CVE-2025-68308",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  can: kvaser_usb: leaf: Fix potential infinite loop in command parsers  The `kvaser_usb_leaf_wait_cmd()` and `kvaser_usb_leaf_read_bulk_callback` functions contain logic to zero-length commands. These commands are used to align data to the USB endpoint's wMaxPacketSize boundary.  The driver attempts to skip these placeholders by aligning the buffer position `pos` to the next packet boundary using `round_up()` function.  However, if zero-length command is found exactly on a packet boundary (i.e., `pos` is a multiple of wMaxPacketSize, including 0), `round_up` function will return the unchanged value of `pos`. This prevents `pos` to be increased, causing an infinite loop in the parsing logic.  This patch fixes this in the function by using `pos + 1` instead. This ensures that even if `pos` is on a boundary, the calculation is based on `pos + 1`, forcing `round_up()` to always return the next aligned boundary.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40257",
                                "url": "https://ubuntu.com/security/CVE-2025-40257",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fix a race in mptcp_pm_del_add_timer()  mptcp_pm_del_add_timer() can call sk_stop_timer_sync(sk, &entry->add_timer) while another might have free entry already, as reported by syzbot.  Add RCU protection to fix this issue.  Also change confusing add_timer variable with stop_timer boolean.  syzbot report:  BUG: KASAN: slab-use-after-free in __timer_delete_sync+0x372/0x3f0 kernel/time/timer.c:1616 Read of size 4 at addr ffff8880311e4150 by task kworker/1:1/44  CPU: 1 UID: 0 PID: 44 Comm: kworker/1:1 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 Workqueue: events mptcp_worker Call Trace:  <TASK>   dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120   print_address_description mm/kasan/report.c:378 [inline]   print_report+0xca/0x240 mm/kasan/report.c:482   kasan_report+0x118/0x150 mm/kasan/report.c:595   __timer_delete_sync+0x372/0x3f0 kernel/time/timer.c:1616   sk_stop_timer_sync+0x1b/0x90 net/core/sock.c:3631   mptcp_pm_del_add_timer+0x283/0x310 net/mptcp/pm.c:362   mptcp_incoming_options+0x1357/0x1f60 net/mptcp/options.c:1174   tcp_data_queue+0xca/0x6450 net/ipv4/tcp_input.c:5361   tcp_rcv_established+0x1335/0x2670 net/ipv4/tcp_input.c:6441   tcp_v4_do_rcv+0x98b/0xbf0 net/ipv4/tcp_ipv4.c:1931   tcp_v4_rcv+0x252a/0x2dc0 net/ipv4/tcp_ipv4.c:2374   ip_protocol_deliver_rcu+0x221/0x440 net/ipv4/ip_input.c:205   ip_local_deliver_finish+0x3bb/0x6f0 net/ipv4/ip_input.c:239   NF_HOOK+0x30c/0x3a0 include/linux/netfilter.h:318   NF_HOOK+0x30c/0x3a0 include/linux/netfilter.h:318   __netif_receive_skb_one_core net/core/dev.c:6079 [inline]   __netif_receive_skb+0x143/0x380 net/core/dev.c:6192   process_backlog+0x31e/0x900 net/core/dev.c:6544   __napi_poll+0xb6/0x540 net/core/dev.c:7594   napi_poll net/core/dev.c:7657 [inline]   net_rx_action+0x5f7/0xda0 net/core/dev.c:7784   handle_softirqs+0x22f/0x710 kernel/softirq.c:622   __do_softirq kernel/softirq.c:656 [inline]   __local_bh_enable_ip+0x1a0/0x2e0 kernel/softirq.c:302   mptcp_pm_send_ack net/mptcp/pm.c:210 [inline]  mptcp_pm_addr_send_ack+0x41f/0x500 net/mptcp/pm.c:-1   mptcp_pm_worker+0x174/0x320 net/mptcp/pm.c:1002   mptcp_worker+0xd5/0x1170 net/mptcp/protocol.c:2762   process_one_work kernel/workqueue.c:3263 [inline]   process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3346   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3427   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 44:   kasan_save_stack mm/kasan/common.c:56 [inline]   kasan_save_track+0x3e/0x80 mm/kasan/common.c:77   poison_kmalloc_redzone mm/kasan/common.c:400 [inline]   __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:417   kasan_kmalloc include/linux/kasan.h:262 [inline]   __kmalloc_cache_noprof+0x1ef/0x6c0 mm/slub.c:5748   kmalloc_noprof include/linux/slab.h:957 [inline]   mptcp_pm_alloc_anno_list+0x104/0x460 net/mptcp/pm.c:385   mptcp_pm_create_subflow_or_signal_addr+0xf9d/0x1360 net/mptcp/pm_kernel.c:355   mptcp_pm_nl_fully_established net/mptcp/pm_kernel.c:409 [inline]   __mptcp_pm_kernel_worker+0x417/0x1ef0 net/mptcp/pm_kernel.c:1529   mptcp_pm_worker+0x1ee/0x320 net/mptcp/pm.c:1008   mptcp_worker+0xd5/0x1170 net/mptcp/protocol.c:2762   process_one_work kernel/workqueue.c:3263 [inline]   process_scheduled_works+0xae1/0x17b0 kernel/workqueue.c:3346   worker_thread+0x8a0/0xda0 kernel/workqueue.c:3427   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  Freed by task 6630:   kasan_save_stack mm/kasan/common.c:56 [inline]   kasan_save_track+0x3e/0x80 mm/kasan/common.c:77   __kasan_save_free_info+0x46/0x50 mm/kasan/generic.c:587   kasan_save_free_info mm/kasan/kasan.h:406 [inline]   poison_slab_object m ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68217",
                                "url": "https://ubuntu.com/security/CVE-2025-68217",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: pegasus-notetaker - fix potential out-of-bounds access  In the pegasus_notetaker driver, the pegasus_probe() function allocates the URB transfer buffer using the wMaxPacketSize value from the endpoint descriptor. An attacker can use a malicious USB descriptor to force the allocation of a very small buffer.  Subsequently, if the device sends an interrupt packet with a specific pattern (e.g., where the first byte is 0x80 or 0x42), the pegasus_parse_packet() function parses the packet without checking the allocated buffer size. This leads to an out-of-bounds memory access.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68204",
                                "url": "https://ubuntu.com/security/CVE-2025-68204",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  pmdomain: arm: scmi: Fix genpd leak on provider registration failure  If of_genpd_add_provider_onecell() fails during probe, the previously created generic power domains are not removed, leading to a memory leak and potential kernel crash later in genpd_debug_add().  Add proper error handling to unwind the initialized domains before returning from probe to ensure all resources are correctly released on failure.  Example crash trace observed without this fix:    | Unable to handle kernel paging request at virtual address fffffffffffffc70   | CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.18.0-rc1 #405 PREEMPT   | Hardware name: ARM LTD ARM Juno Development Platform/ARM Juno Development Platform   | pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)   | pc : genpd_debug_add+0x2c/0x160   | lr : genpd_debug_init+0x74/0x98   | Call trace:   |  genpd_debug_add+0x2c/0x160 (P)   |  genpd_debug_init+0x74/0x98   |  do_one_initcall+0xd0/0x2d8   |  do_initcall_level+0xa0/0x140   |  do_initcalls+0x60/0xa8   |  do_basic_setup+0x28/0x40   |  kernel_init_freeable+0xe8/0x170   |  kernel_init+0x2c/0x140   |  ret_from_fork+0x10/0x20",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68245",
                                "url": "https://ubuntu.com/security/CVE-2025-68245",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: netpoll: fix incorrect refcount handling causing incorrect cleanup  commit efa95b01da18 (\"netpoll: fix use after free\") incorrectly ignored the refcount and prematurely set dev->npinfo to NULL during netpoll cleanup, leading to improper behavior and memory leaks.  Scenario causing lack of proper cleanup:  1) A netpoll is associated with a NIC (e.g., eth0) and netdev->npinfo is    allocated, and refcnt = 1    - Keep in mind that npinfo is shared among all netpoll instances. In      this case, there is just one.  2) Another netpoll is also associated with the same NIC and    npinfo->refcnt += 1.    - Now dev->npinfo->refcnt = 2;    - There is just one npinfo associated to the netdev.  3) When the first netpolls goes to clean up:    - The first cleanup succeeds and clears np->dev->npinfo, ignoring      refcnt.      - It basically calls `RCU_INIT_POINTER(np->dev->npinfo, NULL);`    - Set dev->npinfo = NULL, without proper cleanup    - No ->ndo_netpoll_cleanup() is either called  4) Now the second target tries to clean up    - The second cleanup fails because np->dev->npinfo is already NULL.      * In this case, ops->ndo_netpoll_cleanup() was never called, and        the skb pool is not cleaned as well (for the second netpoll        instance)   - This leaks npinfo and skbpool skbs, which is clearly reported by     kmemleak.  Revert commit efa95b01da18 (\"netpoll: fix use after free\") and adds clarifying comments emphasizing that npinfo cleanup should only happen once the refcount reaches zero, ensuring stable and correct netpoll behavior.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-37354",
                                "url": "https://ubuntu.com/security/CVE-2024-37354",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  btrfs: fix crash on racing fsync and size-extending write into prealloc  We have been seeing crashes on duplicate keys in btrfs_set_item_key_safe():    BTRFS critical (device vdb): slot 4 key (450 108 8192) new key (450 108 8192)   ------------[ cut here ]------------   kernel BUG at fs/btrfs/ctree.c:2620!   invalid opcode: 0000 [#1] PREEMPT SMP PTI   CPU: 0 PID: 3139 Comm: xfs_io Kdump: loaded Not tainted 6.9.0 #6   Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-2.fc40 04/01/2014   RIP: 0010:btrfs_set_item_key_safe+0x11f/0x290 [btrfs]  With the following stack trace:    #0  btrfs_set_item_key_safe (fs/btrfs/ctree.c:2620:4)   #1  btrfs_drop_extents (fs/btrfs/file.c:411:4)   #2  log_one_extent (fs/btrfs/tree-log.c:4732:9)   #3  btrfs_log_changed_extents (fs/btrfs/tree-log.c:4955:9)   #4  btrfs_log_inode (fs/btrfs/tree-log.c:6626:9)   #5  btrfs_log_inode_parent (fs/btrfs/tree-log.c:7070:8)   #6  btrfs_log_dentry_safe (fs/btrfs/tree-log.c:7171:8)   #7  btrfs_sync_file (fs/btrfs/file.c:1933:8)   #8  vfs_fsync_range (fs/sync.c:188:9)   #9  vfs_fsync (fs/sync.c:202:9)   #10 do_fsync (fs/sync.c:212:9)   #11 __do_sys_fdatasync (fs/sync.c:225:9)   #12 __se_sys_fdatasync (fs/sync.c:223:1)   #13 __x64_sys_fdatasync (fs/sync.c:223:1)   #14 do_syscall_x64 (arch/x86/entry/common.c:52:14)   #15 do_syscall_64 (arch/x86/entry/common.c:83:7)   #16 entry_SYSCALL_64+0xaf/0x14c (arch/x86/entry/entry_64.S:121)  So we're logging a changed extent from fsync, which is splitting an extent in the log tree. But this split part already exists in the tree, triggering the BUG().  This is the state of the log tree at the time of the crash, dumped with drgn (https://github.com/osandov/drgn/blob/main/contrib/btrfs_tree.py) to get more details than btrfs_print_leaf() gives us:    >>> print_extent_buffer(prog.crashed_thread().stack_trace()[0][\"eb\"])   leaf 33439744 level 0 items 72 generation 9 owner 18446744073709551610   leaf 33439744 flags 0x100000000000000   fs uuid e5bd3946-400c-4223-8923-190ef1f18677   chunk uuid d58cb17e-6d02-494a-829a-18b7d8a399da           item 0 key (450 INODE_ITEM 0) itemoff 16123 itemsize 160                   generation 7 transid 9 size 8192 nbytes 8473563889606862198                   block group 0 mode 100600 links 1 uid 0 gid 0 rdev 0                   sequence 204 flags 0x10(PREALLOC)                   atime 1716417703.220000000 (2024-05-22 15:41:43)                   ctime 1716417704.983333333 (2024-05-22 15:41:44)                   mtime 1716417704.983333333 (2024-05-22 15:41:44)                   otime 17592186044416.000000000 (559444-03-08 01:40:16)           item 1 key (450 INODE_REF 256) itemoff 16110 itemsize 13                   index 195 namelen 3 name: 193           item 2 key (450 XATTR_ITEM 1640047104) itemoff 16073 itemsize 37                   location key (0 UNKNOWN.0 0) type XATTR                   transid 7 data_len 1 name_len 6                   name: user.a                   data a           item 3 key (450 EXTENT_DATA 0) itemoff 16020 itemsize 53                   generation 9 type 1 (regular)                   extent data disk byte 303144960 nr 12288                   extent data offset 0 nr 4096 ram 12288                   extent compression 0 (none)           item 4 key (450 EXTENT_DATA 4096) itemoff 15967 itemsize 53                   generation 9 type 2 (prealloc)                   prealloc data disk byte 303144960 nr 12288                   prealloc data offset 4096 nr 8192           item 5 key (450 EXTENT_DATA 8192) itemoff 15914 itemsize 53                   generation 9 type 2 (prealloc)                   prealloc data disk byte 303144960 nr 12288                   prealloc data offset 8192 nr 4096   ...  So the real problem happened earlier: notice that items 4 (4k-12k) and 5 (8k-12k) overlap. Both are prealloc extents. Item 4 straddles i_size and item 5 starts at i_size.  Here is the state of ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2024-06-25 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68220",
                                "url": "https://ubuntu.com/security/CVE-2025-68220",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: ethernet: ti: netcp: Standardize knav_dma_open_channel to return NULL on error  Make knav_dma_open_channel consistently return NULL on error instead of ERR_PTR. Currently the header include/linux/soc/ti/knav_dma.h returns NULL when the driver is disabled, but the driver implementation does not even return NULL or ERR_PTR on failure, causing inconsistency in the users. This results in a crash in netcp_free_navigator_resources as followed (trimmed):  Unhandled fault: alignment exception (0x221) at 0xfffffff2 [fffffff2] *pgd=80000800207003, *pmd=82ffda003, *pte=00000000 Internal error: : 221 [#1] SMP ARM Modules linked in: CPU: 0 UID: 0 PID: 1 Comm: swapper/0 Not tainted 6.17.0-rc7 #1 NONE Hardware name: Keystone PC is at knav_dma_close_channel+0x30/0x19c LR is at netcp_free_navigator_resources+0x2c/0x28c  [... TRIM...]  Call trace:  knav_dma_close_channel from netcp_free_navigator_resources+0x2c/0x28c  netcp_free_navigator_resources from netcp_ndo_open+0x430/0x46c  netcp_ndo_open from __dev_open+0x114/0x29c  __dev_open from __dev_change_flags+0x190/0x208  __dev_change_flags from netif_change_flags+0x1c/0x58  netif_change_flags from dev_change_flags+0x38/0xa0  dev_change_flags from ip_auto_config+0x2c4/0x11f0  ip_auto_config from do_one_initcall+0x58/0x200  do_one_initcall from kernel_init_freeable+0x1cc/0x238  kernel_init_freeable from kernel_init+0x1c/0x12c  kernel_init from ret_from_fork+0x14/0x38 [... TRIM...]  Standardize the error handling by making the function return NULL on all error conditions. The API is used in just the netcp_core.c so the impact is limited.  Note, this change, in effect reverts commit 5b6cb43b4d62 (\"net: ethernet: ti: netcp_core: return error while dma channel open issue\"), but provides a less error prone implementation.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40272",
                                "url": "https://ubuntu.com/security/CVE-2025-40272",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/secretmem: fix use-after-free race in fault handler  When a page fault occurs in a secret memory file created with `memfd_secret(2)`, the kernel will allocate a new folio for it, mark the underlying page as not-present in the direct map, and add it to the file mapping.  If two tasks cause a fault in the same page concurrently, both could end up allocating a folio and removing the page from the direct map, but only one would succeed in adding the folio to the file mapping.  The task that failed undoes the effects of its attempt by (a) freeing the folio again and (b) putting the page back into the direct map.  However, by doing these two operations in this order, the page becomes available to the allocator again before it is placed back in the direct mapping.  If another task attempts to allocate the page between (a) and (b), and the kernel tries to access it via the direct map, it would result in a supervisor not-present page fault.  Fix the ordering to restore the direct map before the folio is freed.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40248",
                                "url": "https://ubuntu.com/security/CVE-2025-40248",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  vsock: Ignore signal/timeout on connect() if already established  During connect(), acting on a signal/timeout by disconnecting an already established socket leads to several issues:  1. connect() invoking vsock_transport_cancel_pkt() ->    virtio_transport_purge_skbs() may race with sendmsg() invoking    virtio_transport_get_credit(). This results in a permanently elevated    `vvs->bytes_unsent`. Which, in turn, confuses the SOCK_LINGER handling.  2. connect() resetting a connected socket's state may race with socket    being placed in a sockmap. A disconnected socket remaining in a sockmap    breaks sockmap's assumptions. And gives rise to WARNs.  3. connect() transitioning SS_CONNECTED -> SS_UNCONNECTED allows for a    transport change/drop after TCP_ESTABLISHED. Which poses a problem for    any simultaneous sendmsg() or connect() and may result in a    use-after-free/null-ptr-deref.  Do not disconnect socket on signal/timeout. Keep the logic for unconnected sockets: they don't linger, can't be placed in a sockmap, are rejected by sendmsg().  [1]: https://lore.kernel.org/netdev/e07fd95c-9a38-4eea-9638-133e38c2ec9b@rbox.co/ [2]: https://lore.kernel.org/netdev/20250317-vsock-trans-signal-race-v4-0-fc8837f3f1d4@rbox.co/ [3]: https://lore.kernel.org/netdev/60f1b7db-3099-4f6a-875e-af9f6ef194f6@rbox.co/",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40252",
                                "url": "https://ubuntu.com/security/CVE-2025-40252",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: qlogic/qede: fix potential out-of-bounds read in qede_tpa_cont() and qede_tpa_end()  The loops in 'qede_tpa_cont()' and 'qede_tpa_end()', iterate over 'cqe->len_list[]' using only a zero-length terminator as the stopping condition. If the terminator was missing or malformed, the loop could run past the end of the fixed-size array.  Add an explicit bound check using ARRAY_SIZE() in both loops to prevent a potential out-of-bounds access.  Found by Linux Verification Center (linuxtesting.org) with SVACE.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40253",
                                "url": "https://ubuntu.com/security/CVE-2025-40253",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  s390/ctcm: Fix double-kfree  The function 'mpc_rcvd_sweep_req(mpcginfo)' is called conditionally from function 'ctcmpc_unpack_skb'. It frees passed mpcginfo. After that a call to function 'kfree' in function 'ctcmpc_unpack_skb' frees it again.  Remove 'kfree' call in function 'mpc_rcvd_sweep_req(mpcginfo)'.  Bug detected by the clang static analyzer.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40254",
                                "url": "https://ubuntu.com/security/CVE-2025-40254",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: openvswitch: remove never-working support for setting nsh fields  The validation of the set(nsh(...)) action is completely wrong. It runs through the nsh_key_put_from_nlattr() function that is the same function that validates NSH keys for the flow match and the push_nsh() action.  However, the set(nsh(...)) has a very different memory layout.  Nested attributes in there are doubled in size in case of the masked set().  That makes proper validation impossible.  There is also confusion in the code between the 'masked' flag, that says that the nested attributes are doubled in size containing both the value and the mask, and the 'is_mask' that says that the value we're parsing is the mask.  This is causing kernel crash on trying to write into mask part of the match with SW_FLOW_KEY_PUT() during validation, while validate_nsh() doesn't allocate any memory for it:    BUG: kernel NULL pointer dereference, address: 0000000000000018   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 1c2383067 P4D 1c2383067 PUD 20b703067 PMD 0   Oops: Oops: 0000 [#1] SMP NOPTI   CPU: 8 UID: 0 Kdump: loaded Not tainted 6.17.0-rc4+ #107 PREEMPT(voluntary)   RIP: 0010:nsh_key_put_from_nlattr+0x19d/0x610 [openvswitch]   Call Trace:    <TASK>    validate_nsh+0x60/0x90 [openvswitch]    validate_set.constprop.0+0x270/0x3c0 [openvswitch]    __ovs_nla_copy_actions+0x477/0x860 [openvswitch]    ovs_nla_copy_actions+0x8d/0x100 [openvswitch]    ovs_packet_cmd_execute+0x1cc/0x310 [openvswitch]    genl_family_rcv_msg_doit+0xdb/0x130    genl_family_rcv_msg+0x14b/0x220    genl_rcv_msg+0x47/0xa0    netlink_rcv_skb+0x53/0x100    genl_rcv+0x24/0x40    netlink_unicast+0x280/0x3b0    netlink_sendmsg+0x1f7/0x430    ____sys_sendmsg+0x36b/0x3a0    ___sys_sendmsg+0x87/0xd0    __sys_sendmsg+0x6d/0xd0    do_syscall_64+0x7b/0x2c0    entry_SYSCALL_64_after_hwframe+0x76/0x7e  The third issue with this process is that while trying to convert the non-masked set into masked one, validate_set() copies and doubles the size of the OVS_KEY_ATTR_NSH as if it didn't have any nested attributes.  It should be copying each nested attribute and doubling them in size independently.  And the process must be properly reversed during the conversion back from masked to a non-masked variant during the flow dump.  In the end, the only two outcomes of trying to use this action are either validation failure or a kernel crash.  And if somehow someone manages to install a flow with such an action, it will most definitely not do what it is supposed to, since all the keys and the masks are mixed up.  Fixing all the issues is a complex task as it requires re-writing most of the validation code.  Given that and the fact that this functionality never worked since introduction, let's just remove it altogether.  It's better to re-introduce it later with a proper implementation instead of trying to fix it in stable releases.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40258",
                                "url": "https://ubuntu.com/security/CVE-2025-40258",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mptcp: fix race condition in mptcp_schedule_work()  syzbot reported use-after-free in mptcp_schedule_work() [1]  Issue here is that mptcp_schedule_work() schedules a work, then gets a refcount on sk->sk_refcnt if the work was scheduled. This refcount will be released by mptcp_worker().  [A] if (schedule_work(...)) { [B]     sock_hold(sk);         return true;     }  Problem is that mptcp_worker() can run immediately and complete before [B]  We need instead :      sock_hold(sk);     if (schedule_work(...))         return true;     sock_put(sk);  [1] refcount_t: addition on 0; use-after-free.  WARNING: CPU: 1 PID: 29 at lib/refcount.c:25 refcount_warn_saturate+0xfa/0x1d0 lib/refcount.c:25 Call Trace:  <TASK>  __refcount_add include/linux/refcount.h:-1 [inline]   __refcount_inc include/linux/refcount.h:366 [inline]   refcount_inc include/linux/refcount.h:383 [inline]   sock_hold include/net/sock.h:816 [inline]   mptcp_schedule_work+0x164/0x1a0 net/mptcp/protocol.c:943   mptcp_tout_timer+0x21/0xa0 net/mptcp/protocol.c:2316   call_timer_fn+0x17e/0x5f0 kernel/time/timer.c:1747   expire_timers kernel/time/timer.c:1798 [inline]   __run_timers kernel/time/timer.c:2372 [inline]   __run_timer_base+0x648/0x970 kernel/time/timer.c:2384   run_timer_base kernel/time/timer.c:2393 [inline]   run_timer_softirq+0xb7/0x180 kernel/time/timer.c:2403   handle_softirqs+0x22f/0x710 kernel/softirq.c:622   __do_softirq kernel/softirq.c:656 [inline]   run_ktimerd+0xcf/0x190 kernel/softirq.c:1138   smpboot_thread_fn+0x542/0xa60 kernel/smpboot.c:160   kthread+0x711/0x8a0 kernel/kthread.c:463   ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158   ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68229",
                                "url": "https://ubuntu.com/security/CVE-2025-68229",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: target: tcm_loop: Fix segfault in tcm_loop_tpg_address_show()  If the allocation of tl_hba->sh fails in tcm_loop_driver_probe() and we attempt to dereference it in tcm_loop_tpg_address_show() we will get a segfault, see below for an example. So, check tl_hba->sh before dereferencing it.    Unable to allocate struct scsi_host   BUG: kernel NULL pointer dereference, address: 0000000000000194   #PF: supervisor read access in kernel mode   #PF: error_code(0x0000) - not-present page   PGD 0 P4D 0   Oops: 0000 [#1] PREEMPT SMP NOPTI   CPU: 1 PID: 8356 Comm: tokio-runtime-w Not tainted 6.6.104.2-4.azl3 #1   Hardware name: Microsoft Corporation Virtual Machine/Virtual Machine, BIOS Hyper-V UEFI Release v4.1 09/28/2024   RIP: 0010:tcm_loop_tpg_address_show+0x2e/0x50 [tcm_loop] ...   Call Trace:    <TASK>    configfs_read_iter+0x12d/0x1d0 [configfs]    vfs_read+0x1b5/0x300    ksys_read+0x6f/0xf0 ...",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40259",
                                "url": "https://ubuntu.com/security/CVE-2025-40259",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  scsi: sg: Do not sleep in atomic context  sg_finish_rem_req() calls blk_rq_unmap_user(). The latter function may sleep. Hence, call sg_finish_rem_req() with interrupts enabled instead of disabled.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40261",
                                "url": "https://ubuntu.com/security/CVE-2025-40261",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()  nvme_fc_delete_assocation() waits for pending I/O to complete before returning, and an error can cause ->ioerr_work to be queued after cancel_work_sync() had been called.  Move the call to cancel_work_sync() to be after nvme_fc_delete_association() to ensure ->ioerr_work is not running when the nvme_fc_ctrl object is freed.  Otherwise the following can occur:  [ 1135.911754] list_del corruption, ff2d24c8093f31f8->next is NULL [ 1135.917705] ------------[ cut here ]------------ [ 1135.922336] kernel BUG at lib/list_debug.c:52! [ 1135.926784] Oops: invalid opcode: 0000 [#1] SMP NOPTI [ 1135.931851] CPU: 48 UID: 0 PID: 726 Comm: kworker/u449:23 Kdump: loaded Not tainted 6.12.0 #1 PREEMPT(voluntary) [ 1135.943490] Hardware name: Dell Inc. PowerEdge R660/0HGTK9, BIOS 2.5.4 01/16/2025 [ 1135.950969] Workqueue:  0x0 (nvme-wq) [ 1135.954673] RIP: 0010:__list_del_entry_valid_or_report.cold+0xf/0x6f [ 1135.961041] Code: c7 c7 98 68 72 94 e8 26 45 fe ff 0f 0b 48 c7 c7 70 68 72 94 e8 18 45 fe ff 0f 0b 48 89 fe 48 c7 c7 80 69 72 94 e8 07 45 fe ff <0f> 0b 48 89 d1 48 c7 c7 a0 6a 72 94 48 89 c2 e8 f3 44 fe ff 0f 0b [ 1135.979788] RSP: 0018:ff579b19482d3e50 EFLAGS: 00010046 [ 1135.985015] RAX: 0000000000000033 RBX: ff2d24c8093f31f0 RCX: 0000000000000000 [ 1135.992148] RDX: 0000000000000000 RSI: ff2d24d6bfa1d0c0 RDI: ff2d24d6bfa1d0c0 [ 1135.999278] RBP: ff2d24c8093f31f8 R08: 0000000000000000 R09: ffffffff951e2b08 [ 1136.006413] R10: ffffffff95122ac8 R11: 0000000000000003 R12: ff2d24c78697c100 [ 1136.013546] R13: fffffffffffffff8 R14: 0000000000000000 R15: ff2d24c78697c0c0 [ 1136.020677] FS:  0000000000000000(0000) GS:ff2d24d6bfa00000(0000) knlGS:0000000000000000 [ 1136.028765] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 1136.034510] CR2: 00007fd207f90b80 CR3: 000000163ea22003 CR4: 0000000000f73ef0 [ 1136.041641] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 1136.048776] DR3: 0000000000000000 DR6: 00000000fffe07f0 DR7: 0000000000000400 [ 1136.055910] PKRU: 55555554 [ 1136.058623] Call Trace: [ 1136.061074]  <TASK> [ 1136.063179]  ? show_trace_log_lvl+0x1b0/0x2f0 [ 1136.067540]  ? show_trace_log_lvl+0x1b0/0x2f0 [ 1136.071898]  ? move_linked_works+0x4a/0xa0 [ 1136.075998]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.081744]  ? __die_body.cold+0x8/0x12 [ 1136.085584]  ? die+0x2e/0x50 [ 1136.088469]  ? do_trap+0xca/0x110 [ 1136.091789]  ? do_error_trap+0x65/0x80 [ 1136.095543]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.101289]  ? exc_invalid_op+0x50/0x70 [ 1136.105127]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.110874]  ? asm_exc_invalid_op+0x1a/0x20 [ 1136.115059]  ? __list_del_entry_valid_or_report.cold+0xf/0x6f [ 1136.120806]  move_linked_works+0x4a/0xa0 [ 1136.124733]  worker_thread+0x216/0x3a0 [ 1136.128485]  ? __pfx_worker_thread+0x10/0x10 [ 1136.132758]  kthread+0xfa/0x240 [ 1136.135904]  ? __pfx_kthread+0x10/0x10 [ 1136.139657]  ret_from_fork+0x31/0x50 [ 1136.143236]  ? __pfx_kthread+0x10/0x10 [ 1136.146988]  ret_from_fork_asm+0x1a/0x30 [ 1136.150915]  </TASK>",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40262",
                                "url": "https://ubuntu.com/security/CVE-2025-40262",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: imx_sc_key - fix memory corruption on unload  This is supposed to be \"priv\" but we accidentally pass \"&priv\" which is an address in the stack and so it will lead to memory corruption when the imx_sc_key_action() function is called.  Remove the &.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40263",
                                "url": "https://ubuntu.com/security/CVE-2025-40263",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Input: cros_ec_keyb - fix an invalid memory access  If cros_ec_keyb_register_matrix() isn't called (due to `buttons_switches_only`) in cros_ec_keyb_probe(), `ckdev->idev` remains NULL.  An invalid memory access is observed in cros_ec_keyb_process() when receiving an EC_MKBP_EVENT_KEY_MATRIX event in cros_ec_keyb_work() in such case.    Unable to handle kernel read from unreadable memory at virtual address 0000000000000028   ...   x3 : 0000000000000000 x2 : 0000000000000000   x1 : 0000000000000000 x0 : 0000000000000000   Call trace:   input_event   cros_ec_keyb_work   blocking_notifier_call_chain   ec_irq_thread  It's still unknown about why the kernel receives such malformed event, in any cases, the kernel shouldn't access `ckdev->idev` and friends if the driver doesn't intend to initialize them.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40264",
                                "url": "https://ubuntu.com/security/CVE-2025-40264",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  be2net: pass wrb_params in case of OS2BMC  be_insert_vlan_in_pkt() is called with the wrb_params argument being NULL at be_send_pkt_to_bmc() call site.  This may lead to dereferencing a NULL pointer when processing a workaround for specific packet, as commit bc0c3405abbb (\"be2net: fix a Tx stall bug caused by a specific ipv6 packet\") states.  The correct way would be to pass the wrb_params from be_xmit().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-04 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68238",
                                "url": "https://ubuntu.com/security/CVE-2025-68238",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mtd: rawnand: cadence: fix DMA device NULL pointer dereference  The DMA device pointer `dma_dev` was being dereferenced before ensuring that `cdns_ctrl->dmac` is properly initialized.  Move the assignment of `dma_dev` after successfully acquiring the DMA channel to ensure the pointer is valid before use.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68734",
                                "url": "https://ubuntu.com/security/CVE-2025-68734",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  isdn: mISDN: hfcsusb: fix memory leak in hfcsusb_probe()  In hfcsusb_probe(), the memory allocated for ctrl_urb gets leaked when setup_instance() fails with an error code. Fix that by freeing the urb before freeing the hw structure. Also change the error paths to use the goto ladder style.  Compile tested only. Issue found using a prototype static analysis tool.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-24 11:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40269",
                                "url": "https://ubuntu.com/security/CVE-2025-40269",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix potential overflow of PCM transfer buffer  The PCM stream data in USB-audio driver is transferred over USB URB packet buffers, and each packet size is determined dynamically.  The packet sizes are limited by some factors such as wMaxPacketSize USB descriptor.  OTOH, in the current code, the actually used packet sizes are determined only by the rate and the PPS, which may be bigger than the size limit above.  This results in a buffer overflow, as reported by syzbot.  Basically when the limit is smaller than the calculated packet size, it implies that something is wrong, most likely a weird USB descriptor.  So the best option would be just to return an error at the parameter setup time before doing any further operations.  This patch introduces such a sanity check, and returns -EINVAL when the packet size is greater than maxpacksize.  The comparison with ep->packsize[1] alone should suffice since it's always equal or greater than ep->packsize[0].",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40271",
                                "url": "https://ubuntu.com/security/CVE-2025-40271",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fs/proc: fix uaf in proc_readdir_de()  Pde is erased from subdir rbtree through rb_erase(), but not set the node to EMPTY, which may result in uaf access.  We should use RB_CLEAR_NODE() set the erased node to EMPTY, then pde_subdir_next() will return NULL to avoid uaf access.  We found an uaf issue while using stress-ng testing, need to run testcase getdent and tun in the same time.  The steps of the issue is as follows:  1) use getdent to traverse dir /proc/pid/net/dev_snmp6/, and current    pde is tun3;  2) in the [time windows] unregister netdevice tun3 and tun2, and erase    them from rbtree.  erase tun3 first, and then erase tun2.  the    pde(tun2) will be released to slab;  3) continue to getdent process, then pde_subdir_next() will return    pde(tun2) which is released, it will case uaf access.  CPU 0                                      |    CPU 1 ------------------------------------------------------------------------- traverse dir /proc/pid/net/dev_snmp6/      |  unregister_netdevice(tun->dev)   //tun3 tun2 sys_getdents64()                           |   iterate_dir()                            |     proc_readdir()                         |       proc_readdir_de()                    |     snmp6_unregister_dev()         pde_get(de);                       |       proc_remove()         read_unlock(&proc_subdir_lock);    |         remove_proc_subtree()                                            |          write_lock(&proc_subdir_lock);         [time window]                      |          rb_erase(&root->subdir_node, &parent->subdir);                                            |          write_unlock(&proc_subdir_lock);         read_lock(&proc_subdir_lock);      |         next = pde_subdir_next(de);        |         pde_put(de);                       |         de = next;    //UAF                |  rbtree of dev_snmp6                         |                     pde(tun3)                      /    \\                   NULL  pde(tun2)",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68241",
                                "url": "https://ubuntu.com/security/CVE-2025-68241",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ipv4: route: Prevent rt_bind_exception() from rebinding stale fnhe  The sit driver's packet transmission path calls: sit_tunnel_xmit() -> update_or_create_fnhe(), which lead to fnhe_remove_oldest() being called to delete entries exceeding FNHE_RECLAIM_DEPTH+random.  The race window is between fnhe_remove_oldest() selecting fnheX for deletion and the subsequent kfree_rcu(). During this time, the concurrent path's __mkroute_output() -> find_exception() can fetch the soon-to-be-deleted fnheX, and rt_bind_exception() then binds it with a new dst using a dst_hold(). When the original fnheX is freed via RCU, the dst reference remains permanently leaked.  CPU 0                             CPU 1 __mkroute_output()   find_exception() [fnheX]                                   update_or_create_fnhe()                                     fnhe_remove_oldest() [fnheX]   rt_bind_exception() [bind dst]                                   RCU callback [fnheX freed, dst leak]  This issue manifests as a device reference count leak and a warning in dmesg when unregistering the net device:    unregister_netdevice: waiting for sitX to become free. Usage count = N  Ido Schimmel provided the simple test validation method [1].  The fix clears 'oldest->fnhe_daddr' before calling fnhe_flush_routes(). Since rt_bind_exception() checks this field, setting it to zero prevents the stale fnhe from being reused and bound to a new dst just before it is freed.  [1] ip netns add ns1 ip -n ns1 link set dev lo up ip -n ns1 address add 192.0.2.1/32 dev lo ip -n ns1 link add name dummy1 up type dummy ip -n ns1 route add 192.0.2.2/32 dev dummy1 ip -n ns1 link add name gretap1 up arp off type gretap \\     local 192.0.2.1 remote 192.0.2.2 ip -n ns1 route add 198.51.0.0/16 dev gretap1 taskset -c 0 ip netns exec ns1 mausezahn gretap1 \\     -A 198.51.100.1 -B 198.51.0.0/16 -t udp -p 1000 -c 0 -q & taskset -c 2 ip netns exec ns1 mausezahn gretap1 \\     -A 198.51.100.1 -B 198.51.0.0/16 -t udp -p 1000 -c 0 -q & sleep 10 ip netns pids ns1 | xargs kill ip netns del ns1",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40273",
                                "url": "https://ubuntu.com/security/CVE-2025-40273",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: free copynotify stateid in nfs4_free_ol_stateid()  Typically copynotify stateid is freed either when parent's stateid is being close/freed or in nfsd4_laundromat if the stateid hasn't been used in a lease period.  However, in case when the server got an OPEN (which created a parent stateid), followed by a COPY_NOTIFY using that stateid, followed by a client reboot. New client instance while doing CREATE_SESSION would force expire previous state of this client. It leads to the open state being freed thru release_openowner-> nfs4_free_ol_stateid() and it finds that it still has copynotify stateid associated with it. We currently print a warning and is triggerred  WARNING: CPU: 1 PID: 8858 at fs/nfsd/nfs4state.c:1550 nfs4_free_ol_stateid+0xb0/0x100 [nfsd]  This patch, instead, frees the associated copynotify stateid here.  If the parent stateid is freed (without freeing the copynotify stateids associated with it), it leads to the list corruption when laundromat ends up freeing the copynotify state later.  [ 1626.839430] Internal error: Oops - BUG: 00000000f2000800 [#1]  SMP [ 1626.842828] Modules linked in: nfnetlink_queue nfnetlink_log bluetooth cfg80211 rpcrdma rdma_cm iw_cm ib_cm ib_core nfsd nfs_acl lockd grace nfs_localio ext4 crc16 mbcache jbd2 overlay uinput snd_seq_dummy snd_hrtimer qrtr rfkill vfat fat uvcvideo snd_hda_codec_generic videobuf2_vmalloc videobuf2_memops snd_hda_intel uvc snd_intel_dspcfg videobuf2_v4l2 videobuf2_common snd_hda_codec snd_hda_core videodev snd_hwdep snd_seq mc snd_seq_device snd_pcm snd_timer snd soundcore sg loop auth_rpcgss vsock_loopback vmw_vsock_virtio_transport_common vmw_vsock_vmci_transport vmw_vmci vsock xfs 8021q garp stp llc mrp nvme ghash_ce e1000e nvme_core sr_mod nvme_keyring nvme_auth cdrom vmwgfx drm_ttm_helper ttm sunrpc dm_mirror dm_region_hash dm_log iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi fuse dm_multipath dm_mod nfnetlink [ 1626.855594] CPU: 2 UID: 0 PID: 199 Comm: kworker/u24:33 Kdump: loaded Tainted: G    B   W           6.17.0-rc7+ #22 PREEMPT(voluntary) [ 1626.857075] Tainted: [B]=BAD_PAGE, [W]=WARN [ 1626.857573] Hardware name: VMware, Inc. VMware20,1/VBSA, BIOS VMW201.00V.24006586.BA64.2406042154 06/04/2024 [ 1626.858724] Workqueue: nfsd4 laundromat_main [nfsd] [ 1626.859304] pstate: 61400005 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) [ 1626.860010] pc : __list_del_entry_valid_or_report+0x148/0x200 [ 1626.860601] lr : __list_del_entry_valid_or_report+0x148/0x200 [ 1626.861182] sp : ffff8000881d7a40 [ 1626.861521] x29: ffff8000881d7a40 x28: 0000000000000018 x27: ffff0000c2a98200 [ 1626.862260] x26: 0000000000000600 x25: 0000000000000000 x24: ffff8000881d7b20 [ 1626.862986] x23: ffff0000c2a981e8 x22: 1fffe00012410e7d x21: ffff0000920873e8 [ 1626.863701] x20: ffff0000920873e8 x19: ffff000086f22998 x18: 0000000000000000 [ 1626.864421] x17: 20747562202c3839 x16: 3932326636383030 x15: 3030666666662065 [ 1626.865092] x14: 6220646c756f6873 x13: 0000000000000001 x12: ffff60004fd9e4a3 [ 1626.865713] x11: 1fffe0004fd9e4a2 x10: ffff60004fd9e4a2 x9 : dfff800000000000 [ 1626.866320] x8 : 00009fffb0261b5e x7 : ffff00027ecf2513 x6 : 0000000000000001 [ 1626.866938] x5 : ffff00027ecf2510 x4 : ffff60004fd9e4a3 x3 : 0000000000000000 [ 1626.867553] x2 : 0000000000000000 x1 : ffff000096069640 x0 : 000000000000006d [ 1626.868167] Call trace: [ 1626.868382]  __list_del_entry_valid_or_report+0x148/0x200 (P) [ 1626.868876]  _free_cpntf_state_locked+0xd0/0x268 [nfsd] [ 1626.869368]  nfs4_laundromat+0x6f8/0x1058 [nfsd] [ 1626.869813]  laundromat_main+0x24/0x60 [nfsd] [ 1626.870231]  process_one_work+0x584/0x1050 [ 1626.870595]  worker_thread+0x4c4/0xc60 [ 1626.870893]  kthread+0x2f8/0x398 [ 1626.871146]  ret_from_fork+0x10/0x20 [ 1626.871422] Code: aa1303e1 aa1403e3 910e8000 97bc55d7 (d4210000) [ 1626.871892] SMP: stopping secondary CPUs",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40040",
                                "url": "https://ubuntu.com/security/CVE-2025-40040",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mm/ksm: fix flag-dropping behavior in ksm_madvise  syzkaller discovered the following crash: (kernel BUG)  [   44.607039] ------------[ cut here ]------------ [   44.607422] kernel BUG at mm/userfaultfd.c:2067! [   44.608148] Oops: invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN NOPTI [   44.608814] CPU: 1 UID: 0 PID: 2475 Comm: reproducer Not tainted 6.16.0-rc6 #1 PREEMPT(none) [   44.609635] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014 [   44.610695] RIP: 0010:userfaultfd_release_all+0x3a8/0x460  <snip other registers, drop unreliable trace>  [   44.617726] Call Trace: [   44.617926]  <TASK> [   44.619284]  userfaultfd_release+0xef/0x1b0 [   44.620976]  __fput+0x3f9/0xb60 [   44.621240]  fput_close_sync+0x110/0x210 [   44.622222]  __x64_sys_close+0x8f/0x120 [   44.622530]  do_syscall_64+0x5b/0x2f0 [   44.622840]  entry_SYSCALL_64_after_hwframe+0x76/0x7e [   44.623244] RIP: 0033:0x7f365bb3f227  Kernel panics because it detects UFFD inconsistency during userfaultfd_release_all().  Specifically, a VMA which has a valid pointer to vma->vm_userfaultfd_ctx, but no UFFD flags in vma->vm_flags.  The inconsistency is caused in ksm_madvise(): when user calls madvise() with MADV_UNMEARGEABLE on a VMA that is registered for UFFD in MINOR mode, it accidentally clears all flags stored in the upper 32 bits of vma->vm_flags.  Assuming x86_64 kernel build, unsigned long is 64-bit and unsigned int and int are 32-bit wide.  This setup causes the following mishap during the &= ~VM_MERGEABLE assignment.  VM_MERGEABLE is a 32-bit constant of type unsigned int, 0x8000'0000. After ~ is applied, it becomes 0x7fff'ffff unsigned int, which is then promoted to unsigned long before the & operation.  This promotion fills upper 32 bits with leading 0s, as we're doing unsigned conversion (and even for a signed conversion, this wouldn't help as the leading bit is 0). & operation thus ends up AND-ing vm_flags with 0x0000'0000'7fff'ffff instead of intended 0xffff'ffff'7fff'ffff and hence accidentally clears the upper 32-bits of its value.  Fix it by changing `VM_MERGEABLE` constant to unsigned long, using the BIT() macro.  Note: other VM_* flags are not affected: This only happens to the VM_MERGEABLE flag, as the other VM_* flags are all constants of type int and after ~ operation, they end up with leading 1 and are thus converted to unsigned long with leading 1s.  Note 2: After commit 31defc3b01d9 (\"userfaultfd: remove (VM_)BUG_ON()s\"), this is no longer a kernel BUG, but a WARNING at the same place:  [   45.595973] WARNING: CPU: 1 PID: 2474 at mm/userfaultfd.c:2067  but the root-cause (flag-drop) remains the same.  [akpm@linux-foundation.org: rust bindgen wasn't able to handle BIT(), from Miguel]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-28 12:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68200",
                                "url": "https://ubuntu.com/security/CVE-2025-68200",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Add bpf_prog_run_data_pointers()  syzbot found that cls_bpf_classify() is able to change tc_skb_cb(skb)->drop_reason triggering a warning in sk_skb_reason_drop().  WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 __sk_skb_reason_drop net/core/skbuff.c:1189 [inline] WARNING: CPU: 0 PID: 5965 at net/core/skbuff.c:1192 sk_skb_reason_drop+0x76/0x170 net/core/skbuff.c:1214  struct tc_skb_cb has been added in commit ec624fe740b4 (\"net/sched: Extend qdisc control block with tc control block\"), which added a wrong interaction with db58ba459202 (\"bpf: wire in data and data_end for cls_act_bpf\").  drop_reason was added later.  Add bpf_prog_run_data_pointers() helper to save/restore the net_sched storage colliding with BPF data_meta/data_end.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40275",
                                "url": "https://ubuntu.com/security/CVE-2025-40275",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ALSA: usb-audio: Fix NULL pointer dereference in snd_usb_mixer_controls_badd  In snd_usb_create_streams(), for UAC version 3 devices, the Interface Association Descriptor (IAD) is retrieved via usb_ifnum_to_if(). If this call fails, a fallback routine attempts to obtain the IAD from the next interface and sets a BADD profile. However, snd_usb_mixer_controls_badd() assumes that the IAD retrieved from usb_ifnum_to_if() is always valid, without performing a NULL check. This can lead to a NULL pointer dereference when usb_ifnum_to_if() fails to find the interface descriptor.  This patch adds a NULL pointer check after calling usb_ifnum_to_if() in snd_usb_mixer_controls_badd() to prevent the dereference.  This issue was discovered by syzkaller, which triggered the bug by sending a crafted USB device descriptor.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40277",
                                "url": "https://ubuntu.com/security/CVE-2025-40277",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/vmwgfx: Validate command header size against SVGA_CMD_MAX_DATASIZE  This data originates from userspace and is used in buffer offset calculations which could potentially overflow causing an out-of-bounds access.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40278",
                                "url": "https://ubuntu.com/security/CVE-2025-40278",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-infoleak  Fix a KMSAN kernel-infoleak detected  by the syzbot .  [net?] KMSAN: kernel-infoleak in __skb_datagram_iter  In tcf_ife_dump(), the variable 'opt' was partially initialized using a designatied initializer. While the padding bytes are reamined uninitialized. nla_put() copies the entire structure into a netlink message, these uninitialized bytes leaked to userspace.  Initialize the structure with memset before assigning its fields to ensure all members and padding are cleared prior to beign copied.  This change silences the KMSAN report and prevents potential information leaks from the kernel memory.  This fix has been tested and validated by syzbot. This patch closes the bug reported at the following syzkaller link and ensures no infoleak.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40279",
                                "url": "https://ubuntu.com/security/CVE-2025-40279",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: sched: act_connmark: initialize struct tc_ife to fix kernel leak  In tcf_connmark_dump(), the variable 'opt' was partially initialized using a designatied initializer. While the padding bytes are reamined uninitialized. nla_put() copies the entire structure into a netlink message, these uninitialized bytes leaked to userspace.  Initialize the structure with memset before assigning its fields to ensure all members and padding are cleared prior to beign copied.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40280",
                                "url": "https://ubuntu.com/security/CVE-2025-40280",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  tipc: Fix use-after-free in tipc_mon_reinit_self().  syzbot reported use-after-free of tipc_net(net)->monitors[] in tipc_mon_reinit_self(). [0]  The array is protected by RTNL, but tipc_mon_reinit_self() iterates over it without RTNL.  tipc_mon_reinit_self() is called from tipc_net_finalize(), which is always under RTNL except for tipc_net_finalize_work().  Let's hold RTNL in tipc_net_finalize_work().  [0]: BUG: KASAN: slab-use-after-free in __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline] BUG: KASAN: slab-use-after-free in _raw_spin_lock_irqsave+0xa7/0xf0 kernel/locking/spinlock.c:162 Read of size 1 at addr ffff88805eae1030 by task kworker/0:7/5989  CPU: 0 UID: 0 PID: 5989 Comm: kworker/0:7 Not tainted syzkaller #0 PREEMPT_{RT,(full)} Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/18/2025 Workqueue: events tipc_net_finalize_work Call Trace:  <TASK>  dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0xca/0x240 mm/kasan/report.c:482  kasan_report+0x118/0x150 mm/kasan/report.c:595  __kasan_check_byte+0x2a/0x40 mm/kasan/common.c:568  kasan_check_byte include/linux/kasan.h:399 [inline]  lock_acquire+0x8d/0x360 kernel/locking/lockdep.c:5842  __raw_spin_lock_irqsave include/linux/spinlock_api_smp.h:110 [inline]  _raw_spin_lock_irqsave+0xa7/0xf0 kernel/locking/spinlock.c:162  rtlock_slowlock kernel/locking/rtmutex.c:1894 [inline]  rwbase_rtmutex_lock_state kernel/locking/spinlock_rt.c:160 [inline]  rwbase_write_lock+0xd3/0x7e0 kernel/locking/rwbase_rt.c:244  rt_write_lock+0x76/0x110 kernel/locking/spinlock_rt.c:243  write_lock_bh include/linux/rwlock_rt.h:99 [inline]  tipc_mon_reinit_self+0x79/0x430 net/tipc/monitor.c:718  tipc_net_finalize+0x115/0x190 net/tipc/net.c:140  process_one_work kernel/workqueue.c:3236 [inline]  process_scheduled_works+0xade/0x17b0 kernel/workqueue.c:3319  worker_thread+0x8a0/0xda0 kernel/workqueue.c:3400  kthread+0x70e/0x8a0 kernel/kthread.c:463  ret_from_fork+0x439/0x7d0 arch/x86/kernel/process.c:148  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 6089:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x3e/0x80 mm/kasan/common.c:68  poison_kmalloc_redzone mm/kasan/common.c:388 [inline]  __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:405  kasan_kmalloc include/linux/kasan.h:260 [inline]  __kmalloc_cache_noprof+0x1a8/0x320 mm/slub.c:4407  kmalloc_noprof include/linux/slab.h:905 [inline]  kzalloc_noprof include/linux/slab.h:1039 [inline]  tipc_mon_create+0xc3/0x4d0 net/tipc/monitor.c:657  tipc_enable_bearer net/tipc/bearer.c:357 [inline]  __tipc_nl_bearer_enable+0xe16/0x13f0 net/tipc/bearer.c:1047  __tipc_nl_compat_doit net/tipc/netlink_compat.c:371 [inline]  tipc_nl_compat_doit+0x3bc/0x5f0 net/tipc/netlink_compat.c:393  tipc_nl_compat_handle net/tipc/netlink_compat.c:-1 [inline]  tipc_nl_compat_recv+0x83c/0xbe0 net/tipc/netlink_compat.c:1321  genl_family_rcv_msg_doit+0x215/0x300 net/netlink/genetlink.c:1115  genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]  genl_rcv_msg+0x60e/0x790 net/netlink/genetlink.c:1210  netlink_rcv_skb+0x208/0x470 net/netlink/af_netlink.c:2552  genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219  netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]  netlink_unicast+0x846/0xa10 net/netlink/af_netlink.c:1346  netlink_sendmsg+0x805/0xb30 net/netlink/af_netlink.c:1896  sock_sendmsg_nosec net/socket.c:714 [inline]  __sock_sendmsg+0x21c/0x270 net/socket.c:729  ____sys_sendmsg+0x508/0x820 net/socket.c:2614  ___sys_sendmsg+0x21f/0x2a0 net/socket.c:2668  __sys_sendmsg net/socket.c:2700 [inline]  __do_sys_sendmsg net/socket.c:2705 [inline]  __se_sys_sendmsg net/socket.c:2703 [inline]  __x64_sys_sendmsg+0x1a1/0x260 net/socket.c:2703  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xfa/0x3b0 arch/ ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40281",
                                "url": "https://ubuntu.com/security/CVE-2025-40281",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: prevent possible shift-out-of-bounds in sctp_transport_update_rto  syzbot reported a possible shift-out-of-bounds [1]  Blamed commit added rto_alpha_max and rto_beta_max set to 1000.  It is unclear if some sctp users are setting very large rto_alpha and/or rto_beta.  In order to prevent user regression, perform the test at run time.  Also add READ_ONCE() annotations as sysctl values can change under us.  [1]  UBSAN: shift-out-of-bounds in net/sctp/transport.c:509:41 shift exponent 64 is too large for 32-bit type 'unsigned int' CPU: 0 UID: 0 PID: 16704 Comm: syz.2.2320 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025 Call Trace:  <TASK>   __dump_stack lib/dump_stack.c:94 [inline]   dump_stack_lvl+0x16c/0x1f0 lib/dump_stack.c:120   ubsan_epilogue lib/ubsan.c:233 [inline]   __ubsan_handle_shift_out_of_bounds+0x27f/0x420 lib/ubsan.c:494   sctp_transport_update_rto.cold+0x1c/0x34b net/sctp/transport.c:509   sctp_check_transmitted+0x11c4/0x1c30 net/sctp/outqueue.c:1502   sctp_outq_sack+0x4ef/0x1b20 net/sctp/outqueue.c:1338   sctp_cmd_process_sack net/sctp/sm_sideeffect.c:840 [inline]   sctp_cmd_interpreter net/sctp/sm_sideeffect.c:1372 [inline]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40282",
                                "url": "https://ubuntu.com/security/CVE-2025-40282",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: 6lowpan: reset link-local header on ipv6 recv path  Bluetooth 6lowpan.c netdev has header_ops, so it must set link-local header for RX skb, otherwise things crash, eg. with AF_PACKET SOCK_RAW  Add missing skb_reset_mac_header() for uncompressed ipv6 RX path.  For the compressed one, it is done in lowpan_header_decompress().  Log: (BlueZ 6lowpan-tester Client Recv Raw - Success) ------ kernel BUG at net/core/skbuff.c:212! Call Trace: <IRQ> ... packet_rcv (net/packet/af_packet.c:2152) ... <TASK> __local_bh_enable_ip (kernel/softirq.c:407) netif_rx (net/core/dev.c:5648) chan_recv_cb (net/bluetooth/6lowpan.c:294 net/bluetooth/6lowpan.c:359) ------",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40283",
                                "url": "https://ubuntu.com/security/CVE-2025-40283",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: btusb: reorder cleanup in btusb_disconnect to avoid UAF  There is a KASAN: slab-use-after-free read in btusb_disconnect(). Calling \"usb_driver_release_interface(&btusb_driver, data->intf)\" will free the btusb data associated with the interface. The same data is then used later in the function, hence the UAF.  Fix by moving the accesses to btusb data to before the data is free'd.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-06 22:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68244",
                                "url": "https://ubuntu.com/security/CVE-2025-68244",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/i915: Avoid lock inversion when pinning to GGTT on CHV/BXT+VTD  On completion of i915_vma_pin_ww(), a synchronous variant of dma_fence_work_commit() is called.  When pinning a VMA to GGTT address space on a Cherry View family processor, or on a Broxton generation SoC with VTD enabled, i.e., when stop_machine() is then called from intel_ggtt_bind_vma(), that can potentially lead to lock inversion among reservation_ww and cpu_hotplug locks.  [86.861179] ====================================================== [86.861193] WARNING: possible circular locking dependency detected [86.861209] 6.15.0-rc5-CI_DRM_16515-gca0305cadc2d+ #1 Tainted: G     U [86.861226] ------------------------------------------------------ [86.861238] i915_module_loa/1432 is trying to acquire lock: [86.861252] ffffffff83489090 (cpu_hotplug_lock){++++}-{0:0}, at: stop_machine+0x1c/0x50 [86.861290] but task is already holding lock: [86.861303] ffffc90002e0b4c8 (reservation_ww_class_mutex){+.+.}-{3:3}, at: i915_vma_pin.constprop.0+0x39/0x1d0 [i915] [86.862233] which lock already depends on the new lock. [86.862251] the existing dependency chain (in reverse order) is: [86.862265] -> #5 (reservation_ww_class_mutex){+.+.}-{3:3}: [86.862292]        dma_resv_lockdep+0x19a/0x390 [86.862315]        do_one_initcall+0x60/0x3f0 [86.862334]        kernel_init_freeable+0x3cd/0x680 [86.862353]        kernel_init+0x1b/0x200 [86.862369]        ret_from_fork+0x47/0x70 [86.862383]        ret_from_fork_asm+0x1a/0x30 [86.862399] -> #4 (reservation_ww_class_acquire){+.+.}-{0:0}: [86.862425]        dma_resv_lockdep+0x178/0x390 [86.862440]        do_one_initcall+0x60/0x3f0 [86.862454]        kernel_init_freeable+0x3cd/0x680 [86.862470]        kernel_init+0x1b/0x200 [86.862482]        ret_from_fork+0x47/0x70 [86.862495]        ret_from_fork_asm+0x1a/0x30 [86.862509] -> #3 (&mm->mmap_lock){++++}-{3:3}: [86.862531]        down_read_killable+0x46/0x1e0 [86.862546]        lock_mm_and_find_vma+0xa2/0x280 [86.862561]        do_user_addr_fault+0x266/0x8e0 [86.862578]        exc_page_fault+0x8a/0x2f0 [86.862593]        asm_exc_page_fault+0x27/0x30 [86.862607]        filldir64+0xeb/0x180 [86.862620]        kernfs_fop_readdir+0x118/0x480 [86.862635]        iterate_dir+0xcf/0x2b0 [86.862648]        __x64_sys_getdents64+0x84/0x140 [86.862661]        x64_sys_call+0x1058/0x2660 [86.862675]        do_syscall_64+0x91/0xe90 [86.862689]        entry_SYSCALL_64_after_hwframe+0x76/0x7e [86.862703] -> #2 (&root->kernfs_rwsem){++++}-{3:3}: [86.862725]        down_write+0x3e/0xf0 [86.862738]        kernfs_add_one+0x30/0x3c0 [86.862751]        kernfs_create_dir_ns+0x53/0xb0 [86.862765]        internal_create_group+0x134/0x4c0 [86.862779]        sysfs_create_group+0x13/0x20 [86.862792]        topology_add_dev+0x1d/0x30 [86.862806]        cpuhp_invoke_callback+0x4b5/0x850 [86.862822]        cpuhp_issue_call+0xbf/0x1f0 [86.862836]        __cpuhp_setup_state_cpuslocked+0x111/0x320 [86.862852]        __cpuhp_setup_state+0xb0/0x220 [86.862866]        topology_sysfs_init+0x30/0x50 [86.862879]        do_one_initcall+0x60/0x3f0 [86.862893]        kernel_init_freeable+0x3cd/0x680 [86.862908]        kernel_init+0x1b/0x200 [86.862921]        ret_from_fork+0x47/0x70 [86.862934]        ret_from_fork_asm+0x1a/0x30 [86.862947] -> #1 (cpuhp_state_mutex){+.+.}-{3:3}: [86.862969]        __mutex_lock+0xaa/0xed0 [86.862982]        mutex_lock_nested+0x1b/0x30 [86.862995]        __cpuhp_setup_state_cpuslocked+0x67/0x320 [86.863012]        __cpuhp_setup_state+0xb0/0x220 [86.863026]        page_alloc_init_cpuhp+0x2d/0x60 [86.863041]        mm_core_init+0x22/0x2d0 [86.863054]        start_kernel+0x576/0xbd0 [86.863068]        x86_64_start_reservations+0x18/0x30 [86.863084]        x86_64_start_kernel+0xbf/0x110 [86.863098]        common_startup_64+0x13e/0x141 [86.863114] -> #0 (cpu_hotplug_lock){++++}-{0:0}: [86.863135]        __lock_acquire+0x16 ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 15:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68192",
                                "url": "https://ubuntu.com/security/CVE-2025-68192",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: usb: qmi_wwan: initialize MAC header offset in qmimux_rx_fixup  Raw IP packets have no MAC header, leaving skb->mac_header uninitialized. This can trigger kernel panics on ARM64 when xfrm or other subsystems access the offset due to strict alignment checks.  Initialize the MAC header to prevent such crashes.  This can trigger kernel panics on ARM when running IPsec over the qmimux0 interface.  Example trace:      Internal error: Oops: 000000009600004f [#1] SMP     CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.12.34-gbe78e49cb433 #1     Hardware name: LS1028A RDB Board (DT)     pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)     pc : xfrm_input+0xde8/0x1318     lr : xfrm_input+0x61c/0x1318     sp : ffff800080003b20     Call trace:      xfrm_input+0xde8/0x1318      xfrm6_rcv+0x38/0x44      xfrm6_esp_rcv+0x48/0xa8      ip6_protocol_deliver_rcu+0x94/0x4b0      ip6_input_finish+0x44/0x70      ip6_input+0x44/0xc0      ipv6_rcv+0x6c/0x114      __netif_receive_skb_one_core+0x5c/0x8c      __netif_receive_skb+0x18/0x60      process_backlog+0x78/0x17c      __napi_poll+0x38/0x180      net_rx_action+0x168/0x2f0",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40331",
                                "url": "https://ubuntu.com/security/CVE-2025-40331",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  sctp: Prevent TOCTOU out-of-bounds write  For the following path not holding the sock lock,    sctp_diag_dump() -> sctp_for_each_endpoint() -> sctp_ep_dump()  make sure not to exceed bounds in case the address list has grown between buffer allocation (time-of-check) and write (time-of-use).",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-09 16:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40304",
                                "url": "https://ubuntu.com/security/CVE-2025-40304",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fbdev: Add bounds checking in bit_putcs to fix vmalloc-out-of-bounds  Add bounds checking to prevent writes past framebuffer boundaries when rendering text near screen edges. Return early if the Y position is off-screen and clip image height to screen boundary. Break from the rendering loop if the X position is off-screen. When clipping image width to fit the screen, update the character count to match the clipped width to prevent buffer size mismatches.  Without the character count update, bit_putcs_aligned and bit_putcs_unaligned receive mismatched parameters where the buffer is allocated for the clipped width but cnt reflects the original larger count, causing out-of-bounds writes.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40306",
                                "url": "https://ubuntu.com/security/CVE-2025-40306",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  orangefs: fix xattr related buffer overflow...  Willy Tarreau <w@1wt.eu> forwarded me a message from Disclosure <disclosure@aisle.com> with the following warning:  > The helper `xattr_key()` uses the pointer variable in the loop condition > rather than dereferencing it. As `key` is incremented, it remains non-NULL > (until it runs into unmapped memory), so the loop does not terminate on > valid C strings and will walk memory indefinitely, consuming CPU or hanging > the thread.  I easily reproduced this with setfattr and getfattr, causing a kernel oops, hung user processes and corrupted orangefs files. Disclosure sent along a diff (not a patch) with a suggested fix, which I based this patch on.  After xattr_key started working right, xfstest generic/069 exposed an xattr related memory leak that lead to OOM. xattr_key returns a hashed key.  When adding xattrs to the orangefs xattr cache, orangefs used hash_add, a kernel hashing macro. hash_add also hashes the key using hash_log which resulted in additions to the xattr cache going to the wrong hash bucket. generic/069 tortures a single file and orangefs does a getattr for the xattr \"security.capability\" every time. Orangefs negative caches on xattrs which includes a kmalloc. Since adds to the xattr cache were going to the wrong bucket, every getattr for \"security.capability\" resulted in another kmalloc, none of which were ever freed.  I changed the two uses of hash_add to hlist_add_head instead and the memory leak ceased and generic/069 quit throwing furniture.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40308",
                                "url": "https://ubuntu.com/security/CVE-2025-40308",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: bcsp: receive data only if registered  Currently, bcsp_recv() can be called even when the BCSP protocol has not been registered. This leads to a NULL pointer dereference, as shown in the following stack trace:      KASAN: null-ptr-deref in range [0x0000000000000108-0x000000000000010f]     RIP: 0010:bcsp_recv+0x13d/0x1740 drivers/bluetooth/hci_bcsp.c:590     Call Trace:      <TASK>      hci_uart_tty_receive+0x194/0x220 drivers/bluetooth/hci_ldisc.c:627      tiocsti+0x23c/0x2c0 drivers/tty/tty_io.c:2290      tty_ioctl+0x626/0xde0 drivers/tty/tty_io.c:2706      vfs_ioctl fs/ioctl.c:51 [inline]      __do_sys_ioctl fs/ioctl.c:907 [inline]      __se_sys_ioctl+0xfc/0x170 fs/ioctl.c:893      do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]      do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94      entry_SYSCALL_64_after_hwframe+0x77/0x7f  To prevent this, ensure that the HCI_UART_REGISTERED flag is set before processing received data. If the protocol is not registered, return -EUNATCH.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40309",
                                "url": "https://ubuntu.com/security/CVE-2025-40309",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  Bluetooth: SCO: Fix UAF on sco_conn_free  BUG: KASAN: slab-use-after-free in sco_conn_free net/bluetooth/sco.c:87 [inline] BUG: KASAN: slab-use-after-free in kref_put include/linux/kref.h:65 [inline] BUG: KASAN: slab-use-after-free in sco_conn_put+0xdd/0x410 net/bluetooth/sco.c:107 Write of size 8 at addr ffff88811cb96b50 by task kworker/u17:4/352  CPU: 1 UID: 0 PID: 352 Comm: kworker/u17:4 Not tainted 6.17.0-rc5-g717368f83676 #4 PREEMPT(voluntary) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 Workqueue: hci13 hci_cmd_sync_work Call Trace:  <TASK>  __dump_stack lib/dump_stack.c:94 [inline]  dump_stack_lvl+0x10b/0x170 lib/dump_stack.c:120  print_address_description mm/kasan/report.c:378 [inline]  print_report+0x191/0x550 mm/kasan/report.c:482  kasan_report+0xc4/0x100 mm/kasan/report.c:595  sco_conn_free net/bluetooth/sco.c:87 [inline]  kref_put include/linux/kref.h:65 [inline]  sco_conn_put+0xdd/0x410 net/bluetooth/sco.c:107  sco_connect_cfm+0xb4/0xae0 net/bluetooth/sco.c:1441  hci_connect_cfm include/net/bluetooth/hci_core.h:2082 [inline]  hci_conn_failed+0x20a/0x2e0 net/bluetooth/hci_conn.c:1313  hci_conn_unlink+0x55f/0x810 net/bluetooth/hci_conn.c:1121  hci_conn_del+0xb6/0x1110 net/bluetooth/hci_conn.c:1147  hci_abort_conn_sync+0x8c5/0xbb0 net/bluetooth/hci_sync.c:5689  hci_cmd_sync_work+0x281/0x380 net/bluetooth/hci_sync.c:332  process_one_work kernel/workqueue.c:3236 [inline]  process_scheduled_works+0x77e/0x1040 kernel/workqueue.c:3319  worker_thread+0xbee/0x1200 kernel/workqueue.c:3400  kthread+0x3c7/0x870 kernel/kthread.c:463  ret_from_fork+0x13a/0x1e0 arch/x86/kernel/process.c:148  ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245  </TASK>  Allocated by task 31370:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x30/0x70 mm/kasan/common.c:68  poison_kmalloc_redzone mm/kasan/common.c:388 [inline]  __kasan_kmalloc+0x82/0x90 mm/kasan/common.c:405  kasan_kmalloc include/linux/kasan.h:260 [inline]  __do_kmalloc_node mm/slub.c:4382 [inline]  __kmalloc_noprof+0x22f/0x390 mm/slub.c:4394  kmalloc_noprof include/linux/slab.h:909 [inline]  sk_prot_alloc+0xae/0x220 net/core/sock.c:2239  sk_alloc+0x34/0x5a0 net/core/sock.c:2295  bt_sock_alloc+0x3c/0x330 net/bluetooth/af_bluetooth.c:151  sco_sock_alloc net/bluetooth/sco.c:562 [inline]  sco_sock_create+0xc0/0x350 net/bluetooth/sco.c:593  bt_sock_create+0x161/0x3b0 net/bluetooth/af_bluetooth.c:135  __sock_create+0x3ad/0x780 net/socket.c:1589  sock_create net/socket.c:1647 [inline]  __sys_socket_create net/socket.c:1684 [inline]  __sys_socket+0xd5/0x330 net/socket.c:1731  __do_sys_socket net/socket.c:1745 [inline]  __se_sys_socket net/socket.c:1743 [inline]  __x64_sys_socket+0x7a/0x90 net/socket.c:1743  do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]  do_syscall_64+0xc7/0x240 arch/x86/entry/syscall_64.c:94  entry_SYSCALL_64_after_hwframe+0x77/0x7f  Freed by task 31374:  kasan_save_stack mm/kasan/common.c:47 [inline]  kasan_save_track+0x30/0x70 mm/kasan/common.c:68  kasan_save_free_info+0x40/0x50 mm/kasan/generic.c:576  poison_slab_object mm/kasan/common.c:243 [inline]  __kasan_slab_free+0x3d/0x50 mm/kasan/common.c:275  kasan_slab_free include/linux/kasan.h:233 [inline]  slab_free_hook mm/slub.c:2428 [inline]  slab_free mm/slub.c:4701 [inline]  kfree+0x199/0x3b0 mm/slub.c:4900  sk_prot_free net/core/sock.c:2278 [inline]  __sk_destruct+0x4aa/0x630 net/core/sock.c:2373  sco_sock_release+0x2ad/0x300 net/bluetooth/sco.c:1333  __sock_release net/socket.c:649 [inline]  sock_close+0xb8/0x230 net/socket.c:1439  __fput+0x3d1/0x9e0 fs/file_table.c:468  task_work_run+0x206/0x2a0 kernel/task_work.c:227  get_signal+0x1201/0x1410 kernel/signal.c:2807  arch_do_signal_or_restart+0x34/0x740 arch/x86/kernel/signal.c:337  exit_to_user_mode_loop+0x68/0xc0 kernel/entry/common.c:40  exit_to_user_mode_prepare include/linux/irq-entry-common.h:225 [inline]  s ---truncated---",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40361",
                                "url": "https://ubuntu.com/security/CVE-2025-40361",
                                "cve_description": "Rejected reason: This CVE ID has been rejected or withdrawn by its CVE Numbering Authority.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68185",
                                "url": "https://ubuntu.com/security/CVE-2025-68185",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nfs4_setup_readdir(): insufficient locking for ->d_parent->d_inode dereferencing  Theoretically it's an oopsable race, but I don't believe one can manage to hit it on real hardware; might become doable on a KVM, but it still won't be easy to attack.  Anyway, it's easy to deal with - since xdr_encode_hyper() is just a call of put_unaligned_be64(), we can put that under ->d_lock and be done with that.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68176",
                                "url": "https://ubuntu.com/security/CVE-2025-68176",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  PCI: cadence: Check for the existence of cdns_pcie::ops before using it  cdns_pcie::ops might not be populated by all the Cadence glue drivers. This is going to be true for the upcoming Sophgo platform which doesn't set the ops.  Hence, add a check to prevent NULL pointer dereference.  [mani: reworded subject and description]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68168",
                                "url": "https://ubuntu.com/security/CVE-2025-68168",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jfs: fix uninitialized waitqueue in transaction manager  The transaction manager initialization in txInit() was not properly initializing TxBlock[0].waitor waitqueue, causing a crash when txEnd(0) is called on read-only filesystems.  When a filesystem is mounted read-only, txBegin() returns tid=0 to indicate no transaction. However, txEnd(0) still gets called and tries to access TxBlock[0].waitor via tid_to_tblock(0), but this waitqueue was never initialized because the initialization loop started at index 1 instead of 0.  This causes a 'non-static key' lockdep warning and system crash:   INFO: trying to register non-static key in txEnd  Fix by ensuring all transaction blocks including TxBlock[0] have their waitqueues properly initialized during txInit().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40312",
                                "url": "https://ubuntu.com/security/CVE-2025-40312",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  jfs: Verify inode mode when loading from disk  The inode mode loaded from corrupted disk can be invalid. Do like what commit 0a9e74051313 (\"isofs: Verify inode mode when loading from disk\") does.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68321",
                                "url": "https://ubuntu.com/security/CVE-2025-68321",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  page_pool: always add GFP_NOWARN for ATOMIC allocations  Driver authors often forget to add GFP_NOWARN for page allocation from the datapath. This is annoying to users as OOMs are a fact of life, and we pretty much expect network Rx to hit page allocation failures during OOM. Make page pool add GFP_NOWARN for ATOMIC allocations by default.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68191",
                                "url": "https://ubuntu.com/security/CVE-2025-68191",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  udp_tunnel: use netdev_warn() instead of netdev_WARN()  netdev_WARN() uses WARN/WARN_ON to print a backtrace along with file and line information. In this case, udp_tunnel_nic_register() returning an error is just a failed operation, not a kernel bug.  udp_tunnel_nic_register() can fail due to a memory allocation failure (kzalloc() or udp_tunnel_nic_alloc()). This is a normal runtime error and not a kernel bug.  Replace netdev_WARN() with netdev_warn() accordingly.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40313",
                                "url": "https://ubuntu.com/security/CVE-2025-40313",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ntfs3: pretend $Extend records as regular files  Since commit af153bb63a33 (\"vfs: catch invalid modes in may_open()\") requires any inode be one of S_IFDIR/S_IFLNK/S_IFREG/S_IFCHR/S_IFBLK/ S_IFIFO/S_IFSOCK type, use S_IFREG for $Extend records.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40314",
                                "url": "https://ubuntu.com/security/CVE-2025-40314",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: cdns3: gadget: Use-after-free during failed initialization and exit of cdnsp gadget  In the __cdnsp_gadget_init() and cdnsp_gadget_exit() functions, the gadget structure (pdev->gadget) was freed before its endpoints. The endpoints are linked via the ep_list in the gadget structure. Freeing the gadget first leaves dangling pointers in the endpoint list. When the endpoints are subsequently freed, this results in a use-after-free.  Fix: By separating the usb_del_gadget_udc() operation into distinct \"del\" and \"put\" steps, cdnsp_gadget_free_endpoints() can be executed prior to the final release of the gadget structure with usb_put_gadget().  A patch similar to bb9c74a5bd14(\"usb: dwc3: gadget: Free gadget structure  only after freeing endpoints\").",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68194",
                                "url": "https://ubuntu.com/security/CVE-2025-68194",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  media: imon: make send_packet() more robust  syzbot is reporting that imon has three problems which result in hung tasks due to forever holding device lock [1].  First problem is that when usb_rx_callback_intf0() once got -EPROTO error after ictx->dev_present_intf0 became true, usb_rx_callback_intf0() resubmits urb after printk(), and resubmitted urb causes usb_rx_callback_intf0() to again get -EPROTO error. This results in printk() flooding (RCU stalls).  Alan Stern commented [2] that    In theory it's okay to resubmit _if_ the driver has a robust   error-recovery scheme (such as giving up after some fixed limit on the   number of errors or after some fixed time has elapsed, perhaps with a   time delay to prevent a flood of errors).  Most drivers don't bother to   do this; they simply give up right away.  This makes them more   vulnerable to short-term noise interference during USB transfers, but in   reality such interference is quite rare.  There's nothing really wrong   with giving up right away.  but imon has a poor error-recovery scheme which just retries forever; this behavior should be fixed.  Since I'm not sure whether it is safe for imon users to give up upon any error code, this patch takes care of only union of error codes chosen from modules in drivers/media/rc/ directory which handle -EPROTO error (i.e. ir_toy, mceusb and igorplugusb).  Second problem is that when usb_rx_callback_intf0() once got -EPROTO error before ictx->dev_present_intf0 becomes true, usb_rx_callback_intf0() always resubmits urb due to commit 8791d63af0cf (\"[media] imon: don't wedge hardware after early callbacks\"). Move the ictx->dev_present_intf0 test introduced by commit 6f6b90c9231a (\"[media] imon: don't parse scancodes until intf configured\") to immediately before imon_incoming_packet(), or the first problem explained above happens without printk() flooding (i.e. hung task).  Third problem is that when usb_rx_callback_intf0() is not called for some reason (e.g. flaky hardware; the reproducer for this problem sometimes prevents usb_rx_callback_intf0() from being called), wait_for_completion_interruptible() in send_packet() never returns (i.e. hung task). As a workaround for such situation, change send_packet() to wait for completion with timeout of 10 seconds.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40363",
                                "url": "https://ubuntu.com/security/CVE-2025-40363",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net: ipv6: fix field-spanning memcpy warning in AH output  Fix field-spanning memcpy warnings in ah6_output() and ah6_output_done() where extension headers are copied to/from IPv6 address fields, triggering fortify-string warnings about writes beyond the 16-byte address fields.    memcpy: detected field-spanning write (size 40) of single field \"&top_iph->saddr\" at net/ipv6/ah6.c:439 (size 16)   WARNING: CPU: 0 PID: 8838 at net/ipv6/ah6.c:439 ah6_output+0xe7e/0x14e0 net/ipv6/ah6.c:439  The warnings are false positives as the extension headers are intentionally placed after the IPv6 header in memory. Fix by properly copying addresses and extension headers separately, and introduce helper functions to avoid code duplication.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40342",
                                "url": "https://ubuntu.com/security/CVE-2025-40342",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvme-fc: use lock accessing port_state and rport state  nvme_fc_unregister_remote removes the remote port on a lport object at any point in time when there is no active association. This races with with the reconnect logic, because nvme_fc_create_association is not taking a lock to check the port_state and atomically increase the active count on the rport.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-09 16:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40343",
                                "url": "https://ubuntu.com/security/CVE-2025-40343",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  nvmet-fc: avoid scheduling association deletion twice  When forcefully shutting down a port via the configfs interface, nvmet_port_subsys_drop_link() first calls nvmet_port_del_ctrls() and then nvmet_disable_port(). Both functions will eventually schedule all remaining associations for deletion.  The current implementation checks whether an association is about to be removed, but only after the work item has already been scheduled. As a result, it is possible for the first scheduled work item to free all resources, and then for the same work item to be scheduled again for deletion.  Because the association list is an RCU list, it is not possible to take a lock and remove the list entry directly, so it cannot be looked up again. Instead, a flag (terminating) must be used to determine whether the association is already in the process of being deleted.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-09 16:17:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68177",
                                "url": "https://ubuntu.com/security/CVE-2025-68177",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  cpufreq/longhaul: handle NULL policy in longhaul_exit  longhaul_exit() was calling cpufreq_cpu_get(0) without checking for a NULL policy pointer. On some systems, this could lead to a NULL dereference and a kernel warning or panic.  This patch adds a check using unlikely() and returns early if the policy is NULL.  Bugzilla: #219962",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40360",
                                "url": "https://ubuntu.com/security/CVE-2025-40360",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/sysfb: Do not dereference NULL pointer in plane reset  The plane state in __drm_gem_reset_shadow_plane() can be NULL. Do not deref that pointer, but forward NULL to the other plane-reset helpers. Clears plane->state to NULL.  v2: - fix typo in commit description (Javier)",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40315",
                                "url": "https://ubuntu.com/security/CVE-2025-40315",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usb: gadget: f_fs: Fix epfile null pointer access after ep enable.  A race condition occurs when ffs_func_eps_enable() runs concurrently with ffs_data_reset(). The ffs_data_clear() called in ffs_data_reset() sets ffs->epfiles to NULL before resetting ffs->eps_count to 0, leading to a NULL pointer dereference when accessing epfile->ep in ffs_func_eps_enable() after successful usb_ep_enable().  The ffs->epfiles pointer is set to NULL in both ffs_data_clear() and ffs_data_close() functions, and its modification is protected by the spinlock ffs->eps_lock. And the whole ffs_func_eps_enable() function is also protected by ffs->eps_lock.  Thus, add NULL pointer handling for ffs->epfiles in the ffs_func_eps_enable() function to fix issues",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40317",
                                "url": "https://ubuntu.com/security/CVE-2025-40317",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  regmap: slimbus: fix bus_context pointer in regmap init calls  Commit 4e65bda8273c (\"ASoC: wcd934x: fix error handling in wcd934x_codec_parse_data()\") revealed the problem in the slimbus regmap. That commit breaks audio playback, for instance, on sdm845 Thundercomm Dragonboard 845c board:   Unable to handle kernel paging request at virtual address ffff8000847cbad4  ...  CPU: 5 UID: 0 PID: 776 Comm: aplay Not tainted 6.18.0-rc1-00028-g7ea30958b305 #11 PREEMPT  Hardware name: Thundercomm Dragonboard 845c (DT)  ...  Call trace:   slim_xfer_msg+0x24/0x1ac [slimbus] (P)   slim_read+0x48/0x74 [slimbus]   regmap_slimbus_read+0x18/0x24 [regmap_slimbus]   _regmap_raw_read+0xe8/0x174   _regmap_bus_read+0x44/0x80   _regmap_read+0x60/0xd8   _regmap_update_bits+0xf4/0x140   _regmap_select_page+0xa8/0x124   _regmap_raw_write_impl+0x3b8/0x65c   _regmap_bus_raw_write+0x60/0x80   _regmap_write+0x58/0xc0   regmap_write+0x4c/0x80   wcd934x_hw_params+0x494/0x8b8 [snd_soc_wcd934x]   snd_soc_dai_hw_params+0x3c/0x7c [snd_soc_core]   __soc_pcm_hw_params+0x22c/0x634 [snd_soc_core]   dpcm_be_dai_hw_params+0x1d4/0x38c [snd_soc_core]   dpcm_fe_dai_hw_params+0x9c/0x17c [snd_soc_core]   snd_pcm_hw_params+0x124/0x464 [snd_pcm]   snd_pcm_common_ioctl+0x110c/0x1820 [snd_pcm]   snd_pcm_ioctl+0x34/0x4c [snd_pcm]   __arm64_sys_ioctl+0xac/0x104   invoke_syscall+0x48/0x104   el0_svc_common.constprop.0+0x40/0xe0   do_el0_svc+0x1c/0x28   el0_svc+0x34/0xec   el0t_64_sync_handler+0xa0/0xf0   el0t_64_sync+0x198/0x19c  The __devm_regmap_init_slimbus() started to be used instead of __regmap_init_slimbus() after the commit mentioned above and turns out the incorrect bus_context pointer (3rd argument) was used in __devm_regmap_init_slimbus(). It should be just \"slimbus\" (which is equal to &slimbus->dev). Correct it. The wcd934x codec seems to be the only or the first user of devm_regmap_init_slimbus() but we should fix it till the point where __devm_regmap_init_slimbus() was introduced therefore two \"Fixes\" tags.  While at this, also correct the same argument in __regmap_init_slimbus().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-68312",
                                "url": "https://ubuntu.com/security/CVE-2025-68312",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  usbnet: Prevents free active kevent  The root cause of this issue are: 1. When probing the usbnet device, executing usbnet_link_change(dev, 0, 0); put the kevent work in global workqueue. However, the kevent has not yet been scheduled when the usbnet device is unregistered. Therefore, executing free_netdev() results in the \"free active object (kevent)\" error reported here.  2. Another factor is that when calling usbnet_disconnect()->unregister_netdev(), if the usbnet device is up, ndo_stop() is executed to cancel the kevent. However, because the device is not up, ndo_stop() is not executed.  The solution to this problem is to cancel the kevent before executing free_netdev().",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-16 16:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40319",
                                "url": "https://ubuntu.com/security/CVE-2025-40319",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  bpf: Sync pending IRQ work before freeing ring buffer  Fix a race where irq_work can be queued in bpf_ringbuf_commit() but the ring buffer is freed before the work executes. In the syzbot reproducer, a BPF program attached to sched_switch triggers bpf_ringbuf_commit(), queuing an irq_work. If the ring buffer is freed before this work executes, the irq_work thread may accesses freed memory. Calling `irq_work_sync(&rb->work)` ensures that all pending irq_work complete before freeing the buffer.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40321",
                                "url": "https://ubuntu.com/security/CVE-2025-40321",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  wifi: brcmfmac: fix crash while sending Action Frames in standalone AP Mode  Currently, whenever there is a need to transmit an Action frame, the brcmfmac driver always uses the P2P vif to send the \"actframe\" IOVAR to firmware. The P2P interfaces were available when wpa_supplicant is managing the wlan interface.  However, the P2P interfaces are not created/initialized when only hostapd is managing the wlan interface. And if hostapd receives an ANQP Query REQ Action frame even from an un-associated STA, the brcmfmac driver tries to use an uninitialized P2P vif pointer for sending the IOVAR to firmware. This NULL pointer dereferencing triggers a driver crash.   [ 1417.074538] Unable to handle kernel NULL pointer dereference at virtual  address 0000000000000000  [...]  [ 1417.075188] Hardware name: Raspberry Pi 4 Model B Rev 1.5 (DT)  [...]  [ 1417.075653] Call trace:  [ 1417.075662]  brcmf_p2p_send_action_frame+0x23c/0xc58 [brcmfmac]  [ 1417.075738]  brcmf_cfg80211_mgmt_tx+0x304/0x5c0 [brcmfmac]  [ 1417.075810]  cfg80211_mlme_mgmt_tx+0x1b0/0x428 [cfg80211]  [ 1417.076067]  nl80211_tx_mgmt+0x238/0x388 [cfg80211]  [ 1417.076281]  genl_family_rcv_msg_doit+0xe0/0x158  [ 1417.076302]  genl_rcv_msg+0x220/0x2a0  [ 1417.076317]  netlink_rcv_skb+0x68/0x140  [ 1417.076330]  genl_rcv+0x40/0x60  [ 1417.076343]  netlink_unicast+0x330/0x3b8  [ 1417.076357]  netlink_sendmsg+0x19c/0x3f8  [ 1417.076370]  __sock_sendmsg+0x64/0xc0  [ 1417.076391]  ____sys_sendmsg+0x268/0x2a0  [ 1417.076408]  ___sys_sendmsg+0xb8/0x118  [ 1417.076427]  __sys_sendmsg+0x90/0xf8  [ 1417.076445]  __arm64_sys_sendmsg+0x2c/0x40  [ 1417.076465]  invoke_syscall+0x50/0x120  [ 1417.076486]  el0_svc_common.constprop.0+0x48/0xf0  [ 1417.076506]  do_el0_svc+0x24/0x38  [ 1417.076525]  el0_svc+0x30/0x100  [ 1417.076548]  el0t_64_sync_handler+0x100/0x130  [ 1417.076569]  el0t_64_sync+0x190/0x198  [ 1417.076589] Code: f9401e80 aa1603e2 f9403be1 5280e483 (f9400000)  Fix this, by always using the vif corresponding to the wdev on which the Action frame Transmission request was initiated by the userspace. This way, even if P2P vif is not available, the IOVAR is sent to firmware on AP vif and the ANQP Query RESP Action frame is transmitted without crashing the driver.  Move init_completion() for \"send_af_done\" from brcmf_p2p_create_p2pdev() to brcmf_p2p_attach(). Because the former function would not get executed when only hostapd is managing wlan interface, and it is not safe to do reinit_completion() later in brcmf_p2p_tx_action_frame(), without any prior init_completion().  And in the brcmf_p2p_tx_action_frame() function, the condition check for P2P Presence response frame is not needed, since the wpa_supplicant is properly sending the P2P Presense Response frame on the P2P-GO vif instead of the P2P-Device vif.  [Cc stable]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40322",
                                "url": "https://ubuntu.com/security/CVE-2025-40322",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  fbdev: bitblit: bound-check glyph index in bit_putcs*  bit_putcs_aligned()/unaligned() derived the glyph pointer from the character value masked by 0xff/0x1ff, which may exceed the actual font's glyph count and read past the end of the built-in font array. Clamp the index to the actual glyph count before computing the address.  This fixes a global out-of-bounds read reported by syzbot.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40211",
                                "url": "https://ubuntu.com/security/CVE-2025-40211",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  ACPI: video: Fix use-after-free in acpi_video_switch_brightness()  The switch_brightness_work delayed work accesses device->brightness and device->backlight, freed by acpi_video_dev_unregister_backlight() during device removal.  If the work executes after acpi_video_bus_unregister_backlight() frees these resources, it causes a use-after-free when acpi_video_switch_brightness() dereferences device->brightness or device->backlight.  Fix this by calling cancel_delayed_work_sync() for each device's switch_brightness_work in acpi_video_bus_remove_notify_handler() after removing the notify handler that queues the work. This ensures the work completes before the memory is freed.  [ rjw: Changelog edit ]",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-11-21 11:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40324",
                                "url": "https://ubuntu.com/security/CVE-2025-40324",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  NFSD: Fix crash in nfsd4_read_release()  When tracing is enabled, the trace_nfsd_read_done trace point crashes during the pynfs read.testNoFh test.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-12-08 01:16:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-40083",
                                "url": "https://ubuntu.com/security/CVE-2025-40083",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  net/sched: sch_qfq: Fix null-deref in agg_dequeue  To prevent a potential crash in agg_dequeue (net/sched/sch_qfq.c) when cl->qdisc->ops->peek(cl->qdisc) returns NULL, we check the return value before using it, similar to the existing approach in sch_hfsc.c.  To avoid code duplication, the following changes are made:  1. Changed qdisc_warn_nonwc(include/net/pkt_sched.h) into a static inline function.  2. Moved qdisc_peek_len from net/sched/sch_hfsc.c to include/net/pkt_sched.h so that sch_qfq can reuse it.  3. Applied qdisc_peek_len in agg_dequeue to avoid crashing.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-10-29 14:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2024-41014",
                                "url": "https://ubuntu.com/security/CVE-2024-41014",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  xfs: add bounds checking to xlog_recover_process_data  There is a lack of verification of the space occupied by fixed members of xlog_op_header in the xlog_recover_process_data.  We can create a crafted image to trigger an out of bounds read by following these steps:     1) Mount an image of xfs, and do some file operations to leave records     2) Before umounting, copy the image for subsequent steps to simulate        abnormal exit. Because umount will ensure that tail_blk and        head_blk are the same, which will result in the inability to enter        xlog_recover_process_data     3) Write a tool to parse and modify the copied image in step 2     4) Make the end of the xlog_op_header entries only 1 byte away from        xlog_rec_header->h_size     5) xlog_rec_header->h_num_logops++     6) Modify xlog_rec_header->h_crc  Fix: Add a check to make sure there is sufficient space to access fixed members of xlog_op_header.",
                                "cve_priority": "low",
                                "cve_public_date": "2024-07-29 07:15:00 UTC"
                            },
                            {
                                "cve": "CVE-2022-49267",
                                "url": "https://ubuntu.com/security/CVE-2022-49267",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  mmc: core: use sysfs_emit() instead of sprintf()  sprintf() (still used in the MMC core for the sysfs output) is vulnerable to the buffer overflow.  Use the new-fangled sysfs_emit() instead.  Found by Linux Verification Center (linuxtesting.org) with the SVACE static analysis tool.",
                                "cve_priority": "medium",
                                "cve_public_date": "2025-02-26 07:01:00 UTC"
                            },
                            {
                                "cve": "CVE-2025-21780",
                                "url": "https://ubuntu.com/security/CVE-2025-21780",
                                "cve_description": "In the Linux kernel, the following vulnerability has been resolved:  drm/amdgpu: avoid buffer overflow attach in smu_sys_set_pp_table()  It malicious user provides a small pptable through sysfs and then a bigger pptable, it may cause buffer overflow attack in function smu_sys_set_pp_table().",
                                "cve_priority": "high",
                                "cve_public_date": "2025-02-27 03:15:00 UTC"
                            }
                        ],
                        "log": [
                            "",
                            "  * jammy/linux: 5.15.0-172.182 -proposed tracker (LP: #2141059)",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704)",
                            "    - Revert \"xfrm: destroy xfrm_state synchronously on net exit path\"",
                            "    - xfrm: flush all states in xfrm_state_fini",
                            "    - dpaa2-mac: bail if the dpmacs fwnode is not found",
                            "    - drm/i915/selftests: Fix inconsistent IS_ERR and PTR_ERR",
                            "    - leds: Replace all non-returning strlcpy with strscpy",
                            "    - leds: spi-byte: Use devm_led_classdev_register_ext()",
                            "    - Documentation: process: Also mention Sasha Levin as stable tree",
                            "      maintainer",
                            "    - USB: serial: option: add Foxconn T99W760",
                            "    - USB: serial: option: add Telit Cinterion FE910C04 new compositions",
                            "    - USB: serial: option: move Telit 0x10c7 composition in the right place",
                            "    - USB: serial: ftdi_sio: match on interface number for jtag",
                            "    - serial: add support of CPCI cards",
                            "    - USB: serial: belkin_sa: fix TIOCMBIS and TIOCMBIC",
                            "    - USB: serial: kobil_sct: fix TIOCMBIS and TIOCMBIC",
                            "    - spi: xilinx: increase number of retries before declaring stall",
                            "    - spi: imx: keep dma request disabled before dma transfer setup",
                            "    - pinctrl: qcom: msm: Fix deadlock in pinmux configuration",
                            "    - platform/x86: acer-wmi: Ignore backlight event",
                            "    - platform/x86: huawei-wmi: add keys for HONOR models",
                            "    - HID: elecom: Add support for ELECOM M-XT3URBK (018F)",
                            "    - drm/panel: visionox-rm69299: Don't clear all mode flags",
                            "    - USB: Fix descriptor count when handling invalid MBIM extended descriptor",
                            "    - irqchip/qcom-irq-combiner: Fix section mismatch",
                            "    - rculist: Add hlist_nulls_replace_rcu() and",
                            "      hlist_nulls_replace_init_rcu()",
                            "    - inet: Avoid ehash lookup race in inet_ehash_insert()",
                            "    - iio: imu: st_lsm6dsx: introduce st_lsm6dsx_device_set_enable routine",
                            "    - iio: imu: st_lsm6dsx: discard samples during filters settling time",
                            "    - iio: imu: st_lsm6dsx: Fix measurement unit for odr struct member",
                            "    - arm64: dts: imx8mm-venice-gw72xx: remove unused sdhc1 pinctrl",
                            "    - uio: uio_fsl_elbc_gpcm:: Add null pointer check to",
                            "      uio_fsl_elbc_gpcm_probe",
                            "    - crypto: hisilicon/qm - restore original qos values",
                            "    - s390/smp: Fix fallback CPU detection",
                            "    - s390/ap: Don't leak debug feature files if AP instructions are not",
                            "      available",
                            "    - firmware: imx: scu-irq: fix OF node leak in",
                            "    - phy: mscc: Fix PTP for VSC8574 and VSC8572",
                            "    - sctp: Defer SCTP_DBG_OBJCNT_DEC() to sctp_destroy_sock().",
                            "    - compiler-gcc.h: Define __SANITIZE_ADDRESS__ under hwaddress sanitizer",
                            "    - kmsan: introduce __no_sanitize_memory and __no_kmsan_checks",
                            "    - x86: kmsan: don't instrument stack walking functions",
                            "    - x86/dumpstack: Prevent KASAN false positive warnings in __show_regs()",
                            "    - pinctrl: stm32: fix hwspinlock resource leak in probe function",
                            "    - i3c: fix refcount inconsistency in i3c_master_register",
                            "    - i3c: master: svc: Prevent incomplete IBI transaction",
                            "    - power: supply: wm831x: Check wm831x_set_bits() return value",
                            "    - power: supply: apm_power: only unset own apm_get_power_status",
                            "    - scsi: target: Do not write NUL characters into ASCII configfs output",
                            "    - spi: tegra210-quad: use device_reset method",
                            "    - spi: tegra210-quad: add new chips to compatible",
                            "    - spi: tegra210-quad: combined sequence mode",
                            "    - spi: tegra210-quad: modify chip select (CS) deactivation",
                            "    - mfd: da9055: Fix missing regmap_del_irq_chip() in error path",
                            "    - ext4: minor defrag code improvements",
                            "    - ext4: correct the checking of quota files before moving extents",
                            "    - perf/x86/intel: Correct large PEBS flag check",
                            "    - regulator: core: disable supply if enabling main regulator fails",
                            "    - nbd: clean up return value checking of sock_xmit()",
                            "    - nbd: partition nbd_read_stat() into nbd_read_reply() and",
                            "      nbd_handle_reply()",
                            "    - scsi: stex: Fix reboot_notifier leak in probe error path",
                            "    - dt-bindings: PCI: convert amlogic,meson-pcie.txt to dt-schema",
                            "    - dt-bindings: PCI: amlogic: Fix the register name of the DBI region",
                            "    - RDMA/rtrs: server: Fix error handling in get_or_create_srv",
                            "    - ntfs3: init run lock for extend inode",
                            "    - powerpc/32: Fix unpaired stwcx. on interrupt exit",
                            "    - wifi: cw1200: Fix potential memory leak in cw1200_bh_rx_helper()",
                            "    - coresight: etm4x: Save restore TRFCR_EL1",
                            "    - coresight: etm4x: Use Trace Filtering controls dynamically",
                            "    - coresight-etm4x: add isb() before reading the TRCSTATR",
                            "    - coresight: etm4x: Extract the trace unit controlling",
                            "    - coresight: etm4x: Add context synchronization before enabling trace",
                            "    - clk: renesas: r9a06g032: Fix memory leak in error path",
                            "    - lib/vsprintf: Check pointer before dereferencing in time_and_date()",
                            "    - ACPI: property: Fix fwnode refcount leak in",
                            "      acpi_fwnode_graph_parse_endpoint()",
                            "    - scsi: sim710: Fix resource leak by adding missing ioport_unmap() calls",
                            "    - leds: netxbig: Fix GPIO descriptor leak in error paths",
                            "    - PCI: keystone: Exit ks_pcie_probe() for invalid mode",
                            "    - ps3disk: use memcpy_{from,to}_bvec index",
                            "    - selftests/bpf: Fix failure paths in send_signal test",
                            "    - watchdog: wdat_wdt: Stop watchdog when uninstalling module",
                            "    - watchdog: wdat_wdt: Fix ACPI table leak in probe function",
                            "    - NFSD/blocklayout: Fix minlength check in proc_layoutget",
                            "    - powerpc/64s/ptdump: Fix kernel_hash_pagetable dump for ISA v3.00 HPTE",
                            "      format",
                            "    - fs/ntfs3: Remove unused mi_mark_free",
                            "    - fs/ntfs3: Add new argument is_mft to ntfs_mark_rec_free",
                            "    - fs/ntfs3: Make ni_ins_new_attr return error",
                            "    - fs/ntfs3: out1 also needs to put mi",
                            "    - fs/ntfs3: Prevent memory leaks in add sub record",
                            "    - drm/mediatek: Fix CCORR mtk_ctm_s31_32_to_s1_n function issue",
                            "    - pwm: bcm2835: Make sure the channel is enabled after pwm_request()",
                            "    - mfd: mt6397-irq: Fix missing irq_domain_remove() in error path",
                            "    - mfd: mt6358-irq: Fix missing irq_domain_remove() in error path",
                            "    - usb: chaoskey: fix locking for O_NONBLOCK",
                            "    - usb: dwc2: disable platform lowlevel hw resources during shutdown",
                            "    - usb: dwc2: fix hang during shutdown if set as peripheral",
                            "    - usb: dwc2: fix hang during suspend if set as peripheral",
                            "    - usb: raw-gadget: cap raw_io transfer length to KMALLOC_MAX_SIZE",
                            "    - selftests/bpf: skip test_perf_branches_hw() on unsupported platforms",
                            "    - selftests/bpf: Improve reliability of test_perf_branches_no_hw()",
                            "    - crypto: ccree - Correctly handle return of sg_nents_for_len",
                            "    - staging: fbtft: core: fix potential memory leak in fbtft_probe_common()",
                            "    - PCI: dwc: Fix wrong PORT_LOGIC_LTSSM_STATE_MASK definition",
                            "    - wifi: ieee80211: correct FILS status codes",
                            "    - backlight: led_bl: Take led_access lock when required",
                            "    - backlight: lp855x: Fix lp855x.h kernel-doc warnings",
                            "    - iommu/arm-smmu-qcom: Enable use of all SMR groups when running bare-",
                            "      metal",
                            "    - RDMA/irdma: Fix data race in irdma_sc_ccq_arm",
                            "    - RDMA/irdma: Fix data race in irdma_free_pble",
                            "    - ASoC: fsl_xcvr: Add Counter registers",
                            "    - ASoC: fsl_xcvr: Add support for i.MX93 platform",
                            "    - ASoC: fsl_xcvr: clear the channel status control memory",
                            "    - drm/amd/display: Fix logical vs bitwise bug in",
                            "      get_embedded_panel_info_v2_1()",
                            "    - ACPI: processor_core: fix map_x2apic_id for amd-pstate on am4",
                            "    - ext4: remove unused return value of __mb_check_buddy",
                            "    - ext4: improve integrity checking in __mb_check_buddy by enhancing",
                            "      order-0 validation",
                            "    - vdpa: Introduce and use vdpa device get, set config helpers",
                            "    - vdpa: Introduce query of device config layout",
                            "    - vdpa: Sync calls set/get config/status with cf_mutex",
                            "    - virtio_vdpa: fix misleading return in void function",
                            "    - virtio: fix virtqueue_set_affinity() docs",
                            "    - ASoC: Intel: catpt: Fix error path in hw_params()",
                            "    - netfilter: flowtable: check for maximum number of encapsulations in",
                            "      bridge vlan",
                            "    - netfilter: nf_conncount: reduce unnecessary GC",
                            "    - netfilter: nf_conncount: rework API to use sk_buff directly",
                            "    - netfilter: nft_connlimit: update the count if add was skipped",
                            "    - net: stmmac: fix rx limit check in stmmac_rx_zc()",
                            "    - mtd: lpddr_cmds: fix signed shifts in lpddr_cmds",
                            "    - remoteproc: qcom_q6v5_wcss: fix parsing of qcom,halt-regs",
                            "    - perf tools: Fix split kallsyms DSO counting",
                            "    - pinctrl: single: Fix PIN_CONFIG_BIAS_DISABLE handling",
                            "    - pinctrl: single: Fix incorrect type for error return variable",
                            "    - fbdev: ssd1307fb: fix potential page leak in ssd1307fb_probe()",
                            "    - NFS: Label the dentry with a verifier in nfs_rmdir() and nfs_unlink()",
                            "    - NFS: don't unhash dentry during unlink/rename",
                            "    - NFS: Avoid changing nlink when file removes and attribute updates race",
                            "    - fs/nls: Fix utf16 to utf8 conversion",
                            "    - NFSv4: Add some support for case insensitive filesystems",
                            "    - NFS: Fix the verifier for case sensitive filesystem in nfs_atomic_open()",
                            "    - NFS: Initialise verifiers for visible dentries in nfs_atomic_open()",
                            "    - Revert \"nfs: ignore SB_RDONLY when remounting nfs\"",
                            "    - Revert \"nfs: clear SB_RDONLY before getting superblock\"",
                            "    - Revert \"nfs: ignore SB_RDONLY when mounting nfs\"",
                            "    - fs_context: drop the unused lsm_flags member",
                            "    - fs/nls: Fix inconsistency between utf8_to_utf32() and utf32_to_utf8()",
                            "    - platform/x86: asus-wmi: use brightness_set_blocking() for kbd led",
                            "    - ASoC: bcm: bcm63xx-pcm-whistler: Check return value of",
                            "      of_dma_configure()",
                            "    - ASoC: ak4458: Disable regulator when error happens",
                            "    - ASoC: ak5558: Disable regulator when error happens",
                            "    - blk-mq: Abort suspend when wakeup events are pending",
                            "    - block: fix comment for op_is_zone_mgmt() to include RESET_ALL",
                            "    - dma/pool: eliminate alloc_pages warning in atomic_pool_expand",
                            "    - ALSA: uapi: Fix typo in asound.h comment",
                            "    - ARM: 9464/1: fix input-only operand modification in",
                            "      load_unaligned_zeropad()",
                            "    - dm-raid: fix possible NULL dereference with undefined raid type",
                            "    - dm log-writes: Add missing set_freezable() for freezable kthread",
                            "    - efi/cper: Add a new helper function to print bitmasks",
                            "    - efi/cper: Adjust infopfx size to accept an extra space",
                            "    - efi/cper: align ARM CPER type with UEFI 2.9A/2.10 specs",
                            "    - ocfs2: fix memory leak in ocfs2_merge_rec_left()",
                            "    - usb: gadget: tegra-xudc: Always reinitialize data toggle when clear halt",
                            "    - usb: phy: Initialize struct usb_phy list_head",
                            "    - ASoC: fsl_xcvr: get channel status data when PHY is not exists",
                            "    - NFS: Fix missing unlock in nfs_unlink()",
                            "    - netfilter: nf_conncount: garbage collection is not skipped when jiffies",
                            "      wrap around",
                            "    - coresight: etm4x: Correct polling IDLE bit",
                            "    - spi: tegra210-quad: Fix validate combined sequence",
                            "    - spi: tegra210-quad: Fix X1_X2_X4 encoding and support x4 transfers",
                            "    - bpf, arm64: Do not audit capability check in do_jit()",
                            "    - btrfs: fix memory leak of fs_devices in degraded seed device path",
                            "    - x86/ptrace: Always inline trivial accessors",
                            "    - ACPI: property: Use ACPI functions in acpi_graph_get_next_endpoint()",
                            "      only",
                            "    - cpufreq: s5pv210: fix refcount leak",
                            "    - livepatch: Match old_sympos 0 and 1 in klp_find_func()",
                            "    - fs/ntfs3: Support timestamps prior to epoch",
                            "    - hfsplus: fix volume corruption issue for generic/070",
                            "    - hfsplus: fix volume corruption issue for generic/073",
                            "    - btrfs: scrub: always update btrfs_scrub_progress::last_physical",
                            "    - Bluetooth: btusb: Add new VID/PID 13d3/3533 for RTL8821CE",
                            "    - ipvlan: Ignore PACKET_LOOPBACK in handle_mode_l2()",
                            "    - broadcom: b44: prevent uninitialized value usage",
                            "    - netfilter: nf_conncount: fix leaked ct in error paths",
                            "    - nfc: pn533: Fix error code in pn533_acr122_poweron_rdr()",
                            "    - ethtool: use phydev variable",
                            "    - net/ethtool/ioctl: remove if n_stats checks from ethtool_get_phy_stats",
                            "    - net/ethtool/ioctl: split ethtool_get_phy_stats into multiple helpers",
                            "    - net/mlx5: fw_tracer, Add support for unrecognized string",
                            "    - net/mlx5: fw_tracer, Handle escaped percent properly",
                            "    - net: hns3: Align type of some variables with their print type",
                            "    - net: hns3: using the num_tqps to check whether tqp_index is out of range",
                            "      when vf get ring info from mbx",
                            "    - HID: input: map HID_GD_Z to ABS_DISTANCE for stylus/pen",
                            "    - Input: i8042 - add TUXEDO InfinityBook Max Gen10 AMD to i8042 quirk",
                            "      table",
                            "    - ACPI: CPPC: Fix missing PCC check for guaranteed_perf",
                            "    - spi: fsl-cpm: Check length parity before switching to 16 bit mode",
                            "    - mmc: sdhci-esdhc-imx: add alternate ARCH_S32 dependency to Kconfig",
                            "    - ALSA: vxpocket: Fix resource leak in vxpocket_probe error path",
                            "    - ALSA: pcmcia: Fix resource leak in snd_pdacf_probe error path",
                            "    - ipmi: Fix the race between __scan_channels() and deliver_response()",
                            "    - ipmi: Fix __scan_channels() failing to rescan channels",
                            "    - firmware: imx: scu-irq: Init workqueue before request mbox channel",
                            "    - ti-sysc: allow OMAP2 and OMAP4 timers to be reserved on AM33xx",
                            "    - clk: mvebu: cp110 add CLK_IGNORE_UNUSED to pcie_x10, pcie_x11 & pcie_x4",
                            "    - powerpc/addnote: Fix overflow on 32-bit builds",
                            "    - scsi: qla2xxx: Fix lost interrupts with qlini_mode=disabled",
                            "    - scsi: qla2xxx: Fix initiator mode with qlini_mode=exclusive",
                            "    - scsi: qla2xxx: Use reinit_completion on mbx_intr_comp",
                            "    - exfat: fix remount failure in different process environments",
                            "    - usbip: Fix locking bug in RT-enabled kernels",
                            "    - usb: xhci: limit run_graceperiod for only usb 3.0 devices",
                            "    - usb: usb-storage: No additional quirks need to be added to the EL-R12",
                            "      optical drive.",
                            "    - serial: sprd: Return -EPROBE_DEFER when uart clock is not ready",
                            "    - nvme-fc: don't hold rport lock when putting ctrl",
                            "    - platform/x86/intel/hid: Add Dell Pro Rugged 10/12 tablet to VGBS DMI",
                            "      quirks",
                            "    - vhost/vsock: improve RCU read sections around vhost_vsock_get()",
                            "    - mmc: sdhci-msm: Avoid early clock doubling during HS400 transition",
                            "    - lib/crypto: x86/blake2s: Fix 32-bit arg treated as 64-bit",
                            "    - block: rate-limit capacity change info log",
                            "    - floppy: fix for PAGE_SIZE != 4KB",
                            "    - fs/ntfs3: fix mount failure for sparse runs in run_unpack()",
                            "    - ktest.pl: Fix uninitialized var in config-bisect.pl",
                            "    - ext4: clear i_state_flags when alloc inode",
                            "    - ext4: fix incorrect group number assertion in mb_check_buddy",
                            "    - ext4: align max orphan file size with e2fsprogs limit",
                            "    - jbd2: use a weaker annotation in journal handling",
                            "    - media: v4l2-mem2mem: Fix outdated documentation",
                            "    - usb: usb-storage: Maintain minimal modifications to the bcdDevice range.",
                            "    - media: pvrusb2: Fix incorrect variable used in trace message",
                            "    - phy: broadcom: bcm63xx-usbh: fix section mismatches",
                            "    - USB: lpc32xx_udc: Fix error handling in probe",
                            "    - usb: phy: isp1301: fix non-OF device reference imbalance",
                            "    - usb: dwc3: of-simple: fix clock resource leak in dwc3_of_simple_probe",
                            "    - usb: renesas_usbhs: Fix a resource leak in usbhs_pipe_malloc()",
                            "    - intel_th: Fix error handling in intel_th_output_open",
                            "    - cpufreq: nforce2: fix reference count leak in nforce2",
                            "    - NFSD: use correct reservation type in nfsd4_scsi_fence_client",
                            "    - tools/testing/nvdimm: Use per-DIMM device handle",
                            "    - KVM: x86: WARN if hrtimer callback for periodic APIC timer fires with",
                            "      period=0",
                            "    - KVM: x86: Explicitly set new periodic hrtimer expiration in",
                            "      apic_timer_fn()",
                            "    - KVM: nSVM: Propagate SVM_EXIT_CR0_SEL_WRITE correctly for LMSW emulation",
                            "    - KVM: nSVM: Set exit_code_hi to -1 when synthesizing SVM_EXIT_ERR (failed",
                            "      VMRUN)",
                            "    - KVM: nSVM: Clear exit_code_hi in VMCB when synthesizing nested VM-Exits",
                            "    - PM: runtime: Do not clear needs_force_resume with enabled runtime PM",
                            "    - nfsd: Mark variable __maybe_unused to avoid W=1 build break",
                            "    - svcrdma: return 0 on success from svc_rdma_copy_inline_range",
                            "    - drm/amd/display: Use GFP_ATOMIC in dc_create_plane_state()",
                            "    - amba: tegra-ahb: Fix device leak on SMMU enable",
                            "    - soc: qcom: ocmem: fix device leak on lookup",
                            "    - soc: amlogic: canvas: fix device leak on lookup",
                            "    - rpmsg: glink: fix rpmsg device leak",
                            "    - i2c: amd-mp2: fix reference leak in MP2 PCI device",
                            "    - hwmon: (max16065) Use local variable to avoid TOCTOU",
                            "    - hwmon: (w83l786ng) Convert macros to functions to avoid TOCTOU",
                            "    - i40e: fix scheduling in set_rx_mode",
                            "    - i40e: Refactor argument of several client notification functions",
                            "    - i40e: Refactor argument of i40e_detect_recover_hung()",
                            "    - i40e: validate ring_len parameter against hardware-specific values",
                            "    - net: mdio: aspeed: move reg accessing part into separate functions",
                            "    - net: mdio: aspeed: add dummy read to avoid read-after-write issue",
                            "    - net: openvswitch: Avoid needlessly taking the RTNL on vport destroy",
                            "    - platform/x86: msi-laptop: add missing sysfs_remove_group()",
                            "    - platform/x86: ibm_rtl: fix EBDA signature search pointer arithmetic",
                            "    - genalloc.h: fix htmldocs warning",
                            "    - firewire: nosy: Fix dma_free_coherent() size",
                            "    - net: dsa: b53: skip multicast entries for fdb_dump()",
                            "    - net: bridge: Describe @tunnel_hash member in net_bridge_vlan_group",
                            "      struct",
                            "    - RDMA/efa: Remove possible negative shift",
                            "    - RDMA/core: Fix logic error in ib_get_gids_from_rdma_hdr()",
                            "    - RDMA/bnxt_re: Fix incorrect BAR check in bnxt_qplib_map_creq_db()",
                            "    - RDMA/bnxt_re: Fix IB_SEND_IP_CSUM handling in post_send",
                            "    - RDMA/bnxt_re: Fix to use correct page size for PDE table",
                            "    - RDMA/rtrs: Fix clt_path::max_pages_per_mr calculation",
                            "    - RDMA/bnxt_re: fix dma_free_coherent() pointer",
                            "    - selftests/ftrace: traceonoff_triggers: strip off names",
                            "    - ASoC: stm32: sai: fix device leak on probe",
                            "    - ASoC: qcom: q6asm-dai: perform correct state check before closing",
                            "    - ASoC: qcom: q6adm: the the copp device only during last instance",
                            "    - ASoC: qcom: qdsp6: q6asm-dai: set 10 ms period and buffer alignment.",
                            "    - iommu/apple-dart: fix device leak on of_xlate()",
                            "    - iommu/exynos: fix device leak on of_xlate()",
                            "    - iommu/ipmmu-vmsa: fix device leak on of_xlate()",
                            "    - iommu/mediatek-v1: fix device leak on probe_device()",
                            "    - iommu/mediatek: fix device leak on of_xlate()",
                            "    - iommu/omap: fix device leaks on probe_device()",
                            "    - iommu/sun50i: fix device leak on of_xlate()",
                            "    - iommu/tegra: fix device leak on probe_device()",
                            "    - HID: logitech-dj: Remove duplicate error logging",
                            "    - PCI/PM: Reinstate clearing state_saved in legacy and !PM codepaths",
                            "    - leds: leds-lp50xx: Allow LED 0 to be added to module bank",
                            "    - leds: leds-lp50xx: LP5009 supports 3 modules for a total of 9 LEDs",
                            "    - mfd: altera-sysmgr: Fix device leak on sysmgr regmap lookup",
                            "    - mfd: max77620: Fix potential IRQ chip conflict when probing two devices",
                            "    - media: rc: st_rc: Fix reset control resource leak",
                            "    - parisc: entry.S: fix space adjustment on interruption for 64-bit",
                            "      userspace",
                            "    - parisc: entry: set W bit for !compat tasks in syscall_restore_rfi()",
                            "    - dm-ebs: Mark full buffer dirty even on partial write",
                            "    - fbdev: gbefb: fix to use physical address instead of dma address",
                            "    - fbdev: pxafb: Fix multiple clamped values in pxafb_adjust_timing",
                            "    - fbdev: tcx.c fix mem_map to correct smem_start offset",
                            "    - media: cec: Fix debugfs leak on bus_register() failure",
                            "    - media: msp3400: Avoid possible out-of-bounds array accesses in",
                            "      msp3400c_thread()",
                            "    - media: TDA1997x: Remove redundant cancel_delayed_work in probe",
                            "    - media: i2c: ADV7604: Remove redundant cancel_delayed_work in probe",
                            "    - media: i2c: adv7842: Remove redundant cancel_delayed_work in probe",
                            "    - idr: fix idr_alloc() returning an ID out of range",
                            "    - fjes: Add missing iounmap in fjes_hw_init()",
                            "    - nfsd: Drop the client reference in client_states_open()",
                            "    - net: usb: sr9700: fix incorrect command used to write single register",
                            "    - drm/msm/a6xx: Fix out of bound IO access in a6xx_get_gmu_registers",
                            "    - drm/nouveau/dispnv50: Don't call drm_atomic_get_crtc_state() in",
                            "      prepare_fb",
                            "    - mm/damon/tests/vaddr-kunit: handle alloc failures in",
                            "      damon_test_split_evenly_fail()",
                            "    - mm/damon/tests/vaddr-kunit: handle alloc failures on",
                            "      damon_do_test_apply_three_regions()",
                            "    - mm/damon/tests/vaddr-kunit: handle alloc failures on",
                            "      damon_test_split_evenly_succ()",
                            "    - mm/damon/tests/core-kunit: handle allocation failures in",
                            "      damon_test_regions()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      damon_test_split_at()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      dasmon_test_merge_regions_of()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      damon_test_merge_two()",
                            "    - mm/damon/tests/core-kunit: handle memory failure from",
                            "      damon_test_target()",
                            "    - mm/damon/tests/core-kunit: handle alloc failures on",
                            "      damon_test_split_regions_of()",
                            "    - mm/damon/tests/core-kunit: handle memory alloc failure from",
                            "      damon_test_aggregate()",
                            "    - kbuild: Use CRC32 and a 1MiB dictionary for XZ compressed modules",
                            "    - virtio_console: fix order of fields cols and rows",
                            "    - usb: xhci: move link chain bit quirk checks into one helper function.",
                            "    - xhci: dbgtty: use IDR to support several dbc instances.",
                            "    - xhci: dbgtty: fix device unregister",
                            "    - jbd2: fix the inconsistency between checksum and data in memory for",
                            "      journal sb",
                            "    - btrfs: don't rewrite ret from inode_permission",
                            "    - wifi: mt76: Fix DTS power-limits on little endian systems",
                            "    - ALSA: wavefront: Clear substream pointers on close",
                            "    - ALSA: wavefront: Use standard print API",
                            "    - NFSD: Clear SECLABEL in the suppattr_exclcreat bitmap",
                            "    - KVM: nVMX: Immediately refresh APICv controls as needed on nested VM-",
                            "      Exit",
                            "    - xfs: fix a memory leak in xfs_buf_item_init()",
                            "    - f2fs: fix to detect recoverable inode during dryrun of",
                            "      find_fsync_dnodes()",
                            "    - f2fs: fix to propagate error from f2fs_enable_checkpoint()",
                            "    - usb: dwc3: keep susphy enabled during exit to avoid controller faults",
                            "    - mptcp: pm: ignore unknown endpoint flags",
                            "    - usb: ohci-nxp: Use helper function devm_clk_get_enabled()",
                            "    - usb: ohci-nxp: fix device leak on probe failure",
                            "    - ARM: dts: microchip: sama7g5: fix uart fifo size to 32",
                            "    - KVM: SVM: Mark VMCB_NPT as dirty on nested VMRUN",
                            "    - media: mediatek: vcodec: Fix a reference leak in",
                            "      mtk_vcodec_fw_vpu_init()",
                            "    - media: vpif_capture: fix section mismatch",
                            "    - media: verisilicon: Protect G2 HEVC decoder against invalid DPB index",
                            "    - media: samsung: exynos4-is: fix potential ABBA deadlock on init",
                            "    - media: renesas: rcar_drif: fix device node reference leak in",
                            "      rcar_drif_bond_enabled",
                            "    - powerpc/pseries/cmm: call balloon_devinfo_init() also without",
                            "      CONFIG_BALLOON_COMPACTION",
                            "    - PCI: brcmstb: Fix disabling L0s capability",
                            "    - iommu/qcom: fix device leak on of_xlate()",
                            "    - r8169: fix RTL8117 Wake-on-Lan in DASH mode",
                            "    - ASoC: stm: Use dev_err_probe() helper",
                            "    - ASoC: stm32: sai: Use the devm_clk_get_optional() helper",
                            "    - ASoC: stm32: sai: fix clk prepare imbalance on probe failure",
                            "    - mm/balloon_compaction: make balloon page compaction callbacks static",
                            "    - mm/balloon_compaction: we cannot have isolated pages in the balloon list",
                            "    - mm/balloon_compaction: convert balloon_page_delete() to",
                            "      balloon_page_finalize()",
                            "    - powerpc/pseries/cmm: adjust BALLOON_MIGRATE when migrating pages",
                            "    - lockd: fix vfs_test_lock() calls",
                            "    - drm/gma500: Remove unused helper psb_fbdev_fb_setcolreg()",
                            "    - KVM: arm64: sys_regs: disable -Wuninitialized-const-pointer warning",
                            "    - x86: remove __range_not_ok()",
                            "    - pwm: stm32: Always program polarity",
                            "    - ext4: factor out ext4_hash_info_init()",
                            "    - ext4: fix error message when rejecting the default hash",
                            "    - firmware: arm_scmi: Fix unused notifier-block in unregister",
                            "    - Revert \"iommu/amd: Skip enabling command/event buffers for kdump\"",
                            "    - net: ethtool: fix the error condition in ethtool_get_phy_stats_ethtool()",
                            "    - usb: gadget: lpc32xx_udc: fix clock imbalance in error path",
                            "    - atm: Fix dma_free_coherent() size",
                            "    - mei: me: add nova lake point S DID",
                            "    - lib/crypto: aes: Fix missing MMU protection for AES S-box",
                            "    - drm/pl111: Fix error handling in pl111_amba_probe",
                            "    - libceph: make calc_target() set t->paused, not just clear it",
                            "    - ext4: introduce ITAIL helper",
                            "    - csky: fix csky_cmpxchg_fixup not working",
                            "    - ARM: 9461/1: Disable HIGHPTE on PREEMPT_RT kernels",
                            "    - alpha: don't reference obsolete termio struct for TC* constants",
                            "    - NFSv4: ensure the open stateid seqid doesn't go backwards",
                            "    - NFS: Fix up the automount fs_context to use the correct cred",
                            "    - scsi: ipr: Enable/disable IRQD_NO_BALANCING during reset",
                            "    - scsi: Revert \"scsi: libsas: Fix exp-attached device scan after probe",
                            "      failure scanned in again after probe failed\"",
                            "    - arm64: dts: add off-on-delay-us for usdhc2 regulator",
                            "    - ARM: dts: imx6q-ba16: fix RTC interrupt level",
                            "    - netfilter: nft_synproxy: avoid possible data-race on update operation",
                            "    - netfilter: nf_tables: fix memory leak in nf_tables_newrule()",
                            "    - netfilter: nf_conncount: update last_gc only when GC has been performed",
                            "    - bridge: fix C-VLAN preservation in 802.1ad vlan_tunnel egress",
                            "    - inet: ping: Fix icmp out counting",
                            "    - netdev: preserve NETIF_F_ALL_FOR_ALL across TSO updates",
                            "    - net/mlx5e: Don't print error message due to invalid module",
                            "    - eth: bnxt: move and rename reset helpers",
                            "    - bnxt_en: Fix potential data corruption with HW GRO/LRO",
                            "    - HID: quirks: work around VID/PID conflict for appledisplay",
                            "    - net: enetc: fix build warning when PAGE_SIZE is greater than 128K",
                            "    - arp: do not assume dev_hard_header() does not change skb->head",
                            "    - NFS: trace: show TIMEDOUT instead of 0x6e",
                            "    - nfs_common: factor out nfs_errtbl and nfs_stat_to_errno",
                            "    - NFSD: Remove NFSERR_EAGAIN",
                            "    - pinctrl: qcom: lpass-lpi: Remove duplicate assignment of of_gpio_n_cells",
                            "    - pinctrl: qcom: lpass-lpi: mark the GPIO controller as sleeping",
                            "    - powercap: fix race condition in register_control_type()",
                            "    - powercap: fix sscanf() error return value handling",
                            "    - ASoC: fsl_sai: Add missing registers to cache default",
                            "    - scsi: sg: Fix occasional bogus elapsed time that exceeds timeout",
                            "    - firmware: imx: scu-irq: Set mu_resource_id before get handle",
                            "    - efi/cper: Fix cper_bits_to_str buffer handling and return value",
                            "    - NFS: unlink/rmdir shouldn't call d_delete() twice on ENOENT",
                            "    - NFS: add barriers when testing for NFS_FSDATA_BLOCKED",
                            "    - Linux 5.15.198",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71182",
                            "    - can: j1939: make j1939_session_activate() fail if device is no longer",
                            "      registered",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2022-49465",
                            "    - blk-throttle: Set BIO_THROTTLED when bio has been throttled",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71180",
                            "    - counter: interrupt-cnt: Drop IRQF_NO_THREAD flag",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22980",
                            "    - nfsd: provide locking for v4_end_grace",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-23021",
                            "    - net: usb: pegasus: fix memory leak in update_eth_regs_async()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22976",
                            "    - net/sched: sch_qfq: Fix NULL deref when deactivating inactive aggregate",
                            "      in qfq_reset",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22977",
                            "    - net: sock: fix hardened usercopy panic in sock_recv_errqueue",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22982",
                            "    - net: mscc: ocelot: Fix crash when adding interface under a lag",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-23019",
                            "    - net: marvell: prestera: fix NULL dereference on devlink_alloc() failure",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-22121",
                            "    - ext4: fix out-of-bound read in ext4_xattr_inode_dec_ref_all()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22992",
                            "    - libceph: return the handler error from mon_handle_auth_done()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22991",
                            "    - libceph: make free_choose_arg_map() resilient to partial allocation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22990",
                            "    - libceph: replace overzealous BUG_ON in osdmap_apply_incremental()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22984",
                            "    - libceph: prevent potential out-of-bounds reads in handle_auth_done()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-22978",
                            "    - wifi: avoid kernel-infoleak from struct iw_point",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2026-23020",
                            "    - net: 3com: 3c59x: fix possible null dereference in vortex_probe1()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2024-49968",
                            "    - ext4: filesystems without casefold feature cannot be mounted with",
                            "      siphash",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2024-36927",
                            "    - ipv4: Fix uninit-value access in __ip_make_skb()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2024-36903",
                            "    - ipv6: Fix potential uninit-value access in __ip6_make_skb()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-38556",
                            "    - HID: core: Harden s32ton() against conversion to 0 bits",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2024-46830",
                            "    - KVM: x86: Acquire kvm->srcu when handling KVM_SET_VCPU_EVENTS",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-38129",
                            "    - page_pool: Fix use-after-free in page_pool_recycle_in_ring",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2022-49635",
                            "    - drm/i915/selftests: fix subtraction overflow bug",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-22111",
                            "    - net: Remove RTNL dance for SIOCBRADDIF and SIOCBRDELIF.",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71127",
                            "    - wifi: mac80211: Discard Beacon frames to non-broadcast address",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71081",
                            "    - ASoC: stm32: sai: fix OF node leak on probe",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71078",
                            "    - powerpc/64s/slb: Fix SLB multihit issue during SLB preload",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68803",
                            "    - NFSD: NFSv4 file creation neglects setting ACL",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71120",
                            "    - SUNRPC: svcauth_gss: avoid NULL deref on zero length gss_token in",
                            "      gss_read_proxy_verf",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71113",
                            "    - crypto: af_alg - zero initialize memory allocated via sock_kmalloc",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71068",
                            "    - svcrdma: bound check rq_pages index in inline path",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68821",
                            "    - fuse: fix readahead reclaim deadlock",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68796",
                            "    - f2fs: fix to avoid updating zero-sized extent in extent cache",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71105",
                            "    - f2fs: use global inline_xattr_slab instead of per-sb slab cache",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68344",
                            "    - ALSA: wavefront: Fix integer overflow in sample size validation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71077",
                            "    - tpm: Cap the number of PCR banks",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68282",
                            "    - usb: gadget: udc: fix use-after-free in usb_gadget_state_work",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-22022",
                            "    - usb: xhci: Apply the link chain quirk on NEC isoc endpoints",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-40110",
                            "    - drm/vmwgfx: Fix a null-ptr access in the cursor snooper",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-38022",
                            "    - RDMA/core: Fix \"KASAN: slab-use-after-free Read in ib_register_device\"",
                            "      problem",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71083",
                            "    - drm/ttm: Avoid NULL pointer deref for evicted BOs",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71079",
                            "    - net: nfc: fix deadlock between nfc_unregister_device and",
                            "      rfkill_fop_write",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71093",
                            "    - e1000: fix OOB in e1000_tbi_should_accept()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71084",
                            "    - RDMA/cm: Fix leaking the multicast GID table reference",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71096",
                            "    - RDMA/core: Check for the presence of LS_NLA_TYPE_DGID correctly",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71136",
                            "    - media: adv7842: Avoid possible out-of-bounds array accesses in",
                            "      adv7842_cp_log_status()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71133",
                            "    - RDMA/irdma: avoid invalid read in irdma_net_event",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71086",
                            "    - net: rose: fix invalid array index in rose_kill_by_device()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71097",
                            "    - ipv4: Fix reference count leak when using error routes with nexthop",
                            "      objects",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71085",
                            "    - ipv6: BUG() in pskb_expand_head() as part of calipso_skbuff_setattr()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71137",
                            "    - octeontx2-pf: fix \"UBSAN: shift-out-of-bounds error\"",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71094",
                            "    - net: usb: asix: validate PHY address before use",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71132",
                            "    - smc91x: fix broken irq-context in PREEMPT_RT",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71154",
                            "    - net: usb: rtl8150: fix memory leak on usb_submit_urb() failure",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71091",
                            "    - team: fix check for port enabled in",
                            "      team_queue_override_port_prio_changed()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71098",
                            "    - ip6_gre: make ip6gre_header() robust",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71082",
                            "    - Bluetooth: btusb: revert use of devm_kzalloc in btusb",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71131",
                            "    - crypto: seqiv - Do not use req->iv after crypto_aead_encrypt",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71087",
                            "    - iavf: fix off-by-one issues in iavf_config_rss_reg()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71111",
                            "    - hwmon: (w83791d) Convert macros to functions to avoid TOCTOU",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68814",
                            "    - io_uring: fix filename leak in __io_openat_prep()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68788",
                            "    - fsnotify: do not generate ACCESS/MODIFY events on child for special",
                            "      files",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71125",
                            "    - tracing: Do not register unsupported perf events",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71104",
                            "    - KVM: x86: Fix VM hard lockup after prolonged inactivity with periodic HV",
                            "      timer",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71116",
                            "    - libceph: make decode_pool() more resilient against corrupted osdmaps",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71121",
                            "    - parisc: Do not reprogram affinitiy on ASP chip",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71102",
                            "    - scs: fix a wrong parameter in __scs_magic",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68804",
                            "    - platform/chrome: cros_ec_ishtp: Fix UAF after unbinding driver",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68771",
                            "    - ocfs2: fix kernel BUG in ocfs2_find_victim_chain",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68808",
                            "    - media: vidtv: initialize local pointers upon transfer of memory",
                            "      ownership",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68769",
                            "    - f2fs: fix return value of f2fs_recover_fsync_data()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71069",
                            "    - f2fs: invalidate dentry cache on failed whiteout creation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68782",
                            "    - scsi: target: Reset t_task_cdb pointer in error case",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71075",
                            "    - scsi: aic94xx: fix use-after-free in device removal path",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68818",
                            "    - scsi: Revert \"scsi: qla2xxx: Perform lockless command completion in",
                            "      abort path\"",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68797",
                            "    - char: applicom: fix NULL pointer dereference in ac_ioctl",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68819",
                            "    - media: dvb-usb: dtv5100: fix out-of-bounds in dtv5100_i2c_msg()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68820",
                            "    - ext4: xattr: fix null pointer deref in ext4_raw_inode()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71147",
                            "    - KEYS: trusted: Fix a memory leak in tpm2_load_cmd",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71108",
                            "    - usb: typec: ucsi: Handle incorrect num_connectors capability",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71114",
                            "    - via_wdt: fix critical boot hang due to unnamed resource allocation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68783",
                            "    - ALSA: usb-mixer: us16x08: validate meter packet indices",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68776",
                            "    - net/hsr: fix NULL pointer dereference in prp_get_untagged_frame()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68777",
                            "    - Input: ti_am335x_tsc - fix off-by-one error in wire_order validation",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71112",
                            "    - net: hns3: add VLAN id validation before using",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71064",
                            "    - net: hns3: using the num_tqps in the vf driver to apply for resources",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68816",
                            "    - net/mlx5: fw_tracer, Validate format string parameters",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68795",
                            "    - ethtool: Avoid overflowing userspace buffer on stats query",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68815",
                            "    - net/sched: ets: Remove drr class from the active list if it changes to",
                            "      strict",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68799",
                            "    - caif: fix integer underflow in cffrml_receive()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68813",
                            "    - ipvs: fix ipv4 null-ptr-deref in route error path",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68785",
                            "    - net: openvswitch: fix middle attribute validation in push_nsh() action",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68800",
                            "    - mlxsw: spectrum_mr: Fix use-after-free when updating multicast route",
                            "      stats",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68801",
                            "    - mlxsw: spectrum_router: Fix neighbour use-after-free",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71066",
                            "    - net/sched: ets: Always remove class from active list before deleting in",
                            "      ets_qdisc_change",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68787",
                            "    - netrom: Fix memory leak in nr_sendmsg()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68767",
                            "    - hfsplus: Verify inode mode when loading from disk",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68774",
                            "    - hfsplus: fix missing hfs_bnode_get() in __hfs_bnode_create",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-71118",
                            "    - ACPICA: Avoid walking the Namespace if start_node is NULL",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68780",
                            "    - sched/deadline: only set free_cpus for online runqueues",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68346",
                            "    - ALSA: dice: fix buffer overflow in detect_stream_formats()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68764",
                            "    - NFS: Automounted filesystems should inherit ro,noexec,nodev,sync flags",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68349",
                            "    - NFSv4/pNFS: Clear NFS_INO_LAYOUTCOMMIT in",
                            "      pnfs_mark_layout_stateid_invalid",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68325",
                            "    - net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68354",
                            "    - regulator: core: Protect regulator_supply_alias_list with",
                            "      regulator_list_mutex",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68758",
                            "    - backlight: led-bl: Add devlink to supplier LEDs",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68765",
                            "    - mt76: mt7615: Fix memory leak in mt7615_mcu_wtbl_sta_add()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68740",
                            "    - ima: Handle error code returned by ima_filter_rule_match()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68362",
                            "    - wifi: rtl818x: rtl8187: Fix potential buffer underflow in",
                            "      rtl8187_rx_cb()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68759",
                            "    - wifi: rtl818x: Fix potential memory leaks in rtl8180_init_rx_ring()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68364",
                            "    - ocfs2: relax BUG() to ocfs2_error() in __ocfs2_move_extent()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68366",
                            "    - nbd: defer config unlock in nbd_genl_connect",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68367",
                            "    - macintosh/mac_hid: fix race condition in mac_hid_toggle_emumouse",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68372",
                            "    - nbd: defer config put in recv_work",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68746",
                            "    - spi: tegra210-quad: Fix timeout handling",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68724",
                            "    - crypto: asymmetric_keys - prevent overflow in asymmetric_key_generate_id",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68727",
                            "    - ntfs3: Fix uninit buffer allocated by __getname()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68728",
                            "    - ntfs3: fix uninit memory after failed mi_read in mi_format_new",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68757",
                            "    - drm/vgem-fence: Fix potential deadlock on release",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68732",
                            "    - gpu: host1x: Fix race in syncpt alloc/free",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68733",
                            "    - smack: fix bug: unprivileged task can create labels",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68254",
                            "    - staging: rtl8723bs: fix out-of-bounds read in OnBeacon ESR IE parsing",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68255",
                            "    - staging: rtl8723bs: fix stack buffer overflow in OnAssocReq IE parsing",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68257",
                            "    - comedi: check device's attached status in compat ioctls",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68258",
                            "    - comedi: multiq3: sanitize config options in multiq3_attach()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68332",
                            "    - comedi: c6xdigio: Fix invalid PNP driver unregistration",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68266",
                            "    - bfs: Reconstruct file type when loading from disk",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68335",
                            "    - comedi: pcl818: fix null-ptr-deref in pcl818_ai_cancel()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68261",
                            "    - ext4: add i_data_sem protection in ext4_destroy_inline_data_nolock()",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68336",
                            "    - locking/spinlock/debug: Fix data-race in do_raw_write_lock",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68264",
                            "    - ext4: refresh inline data size before write operations",
                            "",
                            "  * Jammy update: v5.15.198 upstream stable release (LP: #2139704) //",
                            "    CVE-2025-68337",
                            "    - jbd2: avoid bug_on in jbd2_journal_get_create_access() when file system",
                            "      corrupted",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662)",
                            "    - x86/bugs: Fix reporting of LFENCE retpoline",
                            "    - btrfs: scrub: replace max_t()/min_t() with clamp() in",
                            "      scrub_throttle_dev_io()",
                            "    - btrfs: always drop log root tree reference in btrfs_replay_log()",
                            "    - btrfs: use smp_mb__after_atomic() when forcing COW in",
                            "      create_pending_snapshot()",
                            "    - net: usb: asix_devices: Check return value of usbnet_get_endpoints",
                            "    - fbdev: atyfb: Check if pll_ops->init_pll failed",
                            "    - fbdev: pvr2fb: Fix leftover reference to ONCHIP_NR_DMA_CHANNELS",
                            "    - fbdev: valkyriefb: Fix reference count leak in valkyriefb_init",
                            "    - mptcp: restore window probe",
                            "    - ASoC: qdsp6: q6asm: do not sleep while atomic",
                            "    - wifi: ath10k: Fix memory leak on unsupported WMI command",
                            "    - drm/msm/a6xx: Fix GMU firmware parser",
                            "    - ALSA: usb-audio: fix control pipe direction",
                            "    - bpf: Do not audit capability check in do_jit()",
                            "    - riscv, libbpf: Add RISC-V (RV64) support to bpf_tracing.h",
                            "    - libbpf: Normalize PT_REGS_xxx() macro definitions",
                            "    - libbpf: Fix powerpc's stack register definition in bpf_tracing.h",
                            "    - drm/etnaviv: fix flush sequence logic",
                            "    - net: hns3: return error code when function fails",
                            "    - drm/amd/pm: fix smu table id bound check issue in smu_cmn_update_table()",
                            "    - drm/amd/pm/powerplay/smumgr: Fix PCIeBootLinkLevel value on Fiji",
                            "    - drm/amd/pm/powerplay/smumgr: Fix PCIeBootLinkLevel value on Iceland",
                            "    - block: fix op_is_zone_mgmt() to handle REQ_OP_ZONE_RESET_ALL",
                            "    - serial: 8250_dw: Use devm_add_action_or_reset()",
                            "    - serial: 8250_dw: handle reset control deassert error",
                            "    - dt-bindings: usb: dwc3-imx8mp: dma-range is required only for imx8mp",
                            "    - ravb: Exclude gPTP feature support for RZ/G2L",
                            "    - net: ravb: Enforce descriptor type ordering",
                            "    - can: gs_usb: increase max interface to U8_MAX",
                            "    - net: phy: dp83867: Disable EEE support as not implemented",
                            "    - x86/resctrl: Fix miscount of bandwidth event when reactivating",
                            "      previously unavailable RMID",
                            "    - xhci: dbc: Provide sysfs option to configure dbc descriptors",
                            "    - xhci: dbc: poll at different rate depending on data transfer activity",
                            "    - xhci: dbc: Allow users to modify DbC poll interval via sysfs",
                            "    - xhci: dbc: Improve performance by removing delay in transfer event",
                            "      polling.",
                            "    - xhci: dbc: Avoid event polling busyloop if pending rx transfers are",
                            "      inactive.",
                            "    - xhci: dbc: fix bogus 1024 byte prefix if ttyDBC read races with stall",
                            "      event",
                            "    - x86/boot: Compile boot code with -std=gnu11 too",
                            "    - arch: back to -std=gnu89 in < v5.18",
                            "    - Revert \"docs/process/howto: Replace C89 with C11\"",
                            "    - drm/sched: Fix race in drm_sched_entity_select_rq()",
                            "    - block: make REQ_OP_ZONE_OPEN a write operation",
                            "    - soc: aspeed: socinfo: Add AST27xx silicon IDs",
                            "    - soc: qcom: smem: Fix endian-unaware access of num_entries",
                            "    - spi: loopback-test: Don't use %pK through printk",
                            "    - soc: ti: pruss: don't use %pK through printk",
                            "    - bpf: Don't use %pK through printk",
                            "    - pinctrl: single: fix bias pull up/down handling in pin_config_set",
                            "    - mmc: host: renesas_sdhi: Fix the actual clock",
                            "    - memstick: Add timeout to prevent indefinite waiting",
                            "    - ACPI: video: force native for Lenovo 82K8",
                            "    - selftests/bpf: Fix bpf_prog_detach2 usage in test_lirc_mode2",
                            "    - arc: Fix __fls() const-foldability via __builtin_clzl()",
                            "    - irqchip/gic-v2m: Handle Multiple MSI base IRQ Alignment",
                            "    - ACPI: PRM: Skip handlers with NULL handler_address or NULL VA",
                            "    - ACPI: scan: Add Intel CVS ACPI HIDs to acpi_ignore_dep_ids[]",
                            "    - hwmon: (sbtsi_temp) AMD CPU extended temperature range support",
                            "    - power: supply: sbs-charger: Support multiple devices",
                            "    - mmc: sdhci-msm: Enable tuning for SDR50 mode for SD card",
                            "    - ACPICA: dispatcher: Use acpi_ds_clear_operands() in",
                            "      acpi_ds_call_control_method()",
                            "    - tee: allow a driver to allocate a tee_device without a pool",
                            "    - video: backlight: lp855x_bl: Set correct EPROM start for LP8556",
                            "    - tools/cpupower: fix error return value in cpupower_write_sysfs()",
                            "    - cpuidle: Fail cpuidle device registration if there is one already",
                            "    - clocksource/drivers/vf-pit: Replace raw_readl/writel to readl/writel",
                            "    - uprobe: Do not emulate/sstep original instruction when ip is changed",
                            "    - hwmon: (dell-smm) Add support for Dell OptiPlex 7040",
                            "    - tools/cpupower: Fix incorrect size in cpuidle_state_disable()",
                            "    - tools/power x86_energy_perf_policy: Fix incorrect fopen mode usage",
                            "    - tools/power x86_energy_perf_policy: Enhance HWP enable",
                            "    - tools/power x86_energy_perf_policy: Prefer driver HWP limits",
                            "    - mfd: stmpe: Remove IRQ domain upon removal",
                            "    - mfd: stmpe-i2c: Add missing MODULE_LICENSE",
                            "    - mfd: madera: Work around false-positive -Wininitialized warning",
                            "    - mfd: da9063: Split chip variant reading in two bus transactions",
                            "    - drm/amd/pm: Use cached metrics data on aldebaran",
                            "    - drm/amd/pm: Use cached metrics data on arcturus",
                            "    - drm/amdgpu/jpeg: Hold pg_lock before jpeg poweroff",
                            "    - drm/nouveau: replace snprintf() with scnprintf() in nvkm_snprintbf()",
                            "    - PCI: Disable MSI on RDC PCI to PCIe bridges",
                            "    - selftests/net: Replace non-standard __WORDSIZE with sizeof(long) * 8",
                            "    - selftests/net: Ensure assert() triggers in psock_tpacket.c",
                            "    - drm/amdkfd: return -ENOTTY for unsupported IOCTLs",
                            "    - media: pci: ivtv: Don't create fake v4l2_fh",
                            "    - drm/tidss: Use the crtc_* timings when programming the HW",
                            "    - drm/tidss: Set crtc modesetting parameters with adjusted mode",
                            "    - x86/vsyscall: Do not require X86_PF_INSTR to emulate vsyscall",
                            "    - net: stmmac: Check stmmac_hw_setup() in stmmac_resume()",
                            "    - thunderbolt: Use is_pciehp instead of is_hotplug_bridge",
                            "    - powerpc/eeh: Use result of error_detected() in uevent",
                            "    - bridge: Redirect to backup port when port is administratively down",
                            "    - drm/bridge: display-connector: don't set OP_DETECT for DisplayPorts",
                            "    - iio: adc: spear_adc: mask SPEAR_ADC_STATUS channel and avg sample before",
                            "      setting register",
                            "    - usb: gadget: f_ncm: Fix MAC assignment NCM ethernet",
                            "    - char: misc: Does not request module for miscdevice with dynamic minor",
                            "    - net: When removing nexthops, don't call synchronize_net if it is not",
                            "      necessary",
                            "    - net: Call trace_sock_exceed_buf_limit() for memcg failure with",
                            "      SK_MEM_RECV.",
                            "    - PCI/P2PDMA: Fix incorrect pointer usage in devm_kfree() call",
                            "    - ALSA: usb-audio: Add validation of UAC2/UAC3 effect units",
                            "    - rds: Fix endianness annotation for RDS_MPATH_HASH",
                            "    - scsi: mpi3mr: Fix controller init failure on fault during queue creation",
                            "    - scsi: pm80xx: Fix race condition caused by static variables",
                            "    - extcon: adc-jack: Fix wakeup source leaks on device unbind",
                            "    - drm/amdkfd: Tie UNMAP_LATENCY to queue_preemption",
                            "    - media: fix uninitialized symbol warnings",
                            "    - mips: lantiq: danube: add missing properties to cpu node",
                            "    - mips: lantiq: danube: add missing device_type in pci node",
                            "    - mips: lantiq: xway: sysctrl: rename stp clock",
                            "    - scsi: pm8001: Use int instead of u32 to store error codes",
                            "    - ptp: Limit time setting of PTP clocks",
                            "    - dmaengine: sh: setup_xref error handling",
                            "    - dmaengine: mv_xor: match alloc_wc and free_wc",
                            "    - dmaengine: dw-edma: Set status for callback_result",
                            "    - drm/msm/dsi/phy: Toggle back buffer resync after preparing PLL",
                            "    - drm/msm/dsi/phy_7nm: Fix missing initial VCO rate",
                            "    - ipv6: Add sanity checks on ipv6_devconf.rpl_seg_enabled",
                            "    - net: nfc: nci: Increase NCI_DATA_TIMEOUT to 3000 ms",
                            "    - net: call cond_resched() less often in __release_sock()",
                            "    - iommu/amd: Skip enabling command/event buffers for kdump",
                            "    - usb: gadget: f_hid: Fix zero length packet transfer",
                            "    - drm/msm: make sure to not queue up recovery more than once",
                            "    - net: phy: marvell: Fix 88e1510 downshift counter errata",
                            "    - phy: cadence: cdns-dphy: Enable lower resolutions in dphy",
                            "    - phy: rockchip: phy-rockchip-inno-csidphy: allow writes to grf register 0",
                            "    - net: sh_eth: Disable WoL if system can not suspend",
                            "    - media: redrat3: use int type to store negative error codes",
                            "    - selftests: traceroute: Use require_command()",
                            "    - netfilter: nf_reject: don't reply to icmp error messages",
                            "    - x86/kvm: Prefer native qspinlock for dedicated vCPUs irrespective of",
                            "      PV_UNHALT",
                            "    - selftests: Disable dad for ipv6 in fcnal-test.sh",
                            "    - eth: 8139too: Make 8139TOO_PIO depend on !NO_IOPORT_MAP",
                            "    - [Config] Disable CONFIG_8139TOO_PIO for armhf",
                            "    - selftests: Replace sleep with slowwait",
                            "    - net/cls_cgroup: Fix task_get_classid() during qdisc run",
                            "    - drm/amdgpu: Use memdup_array_user in amdgpu_cs_wait_fences_ioctl",
                            "    - selftests/Makefile: include $(INSTALL_DEP_TARGETS) in clean target to",
                            "      clean net/lib dependency",
                            "    - scsi: lpfc: Check return status of lpfc_reset_flush_io_context during",
                            "      TGT_RESET",
                            "    - scsi: lpfc: Remove ndlp kref decrement clause for F_Port_Ctrl in",
                            "      lpfc_cleanup",
                            "    - scsi: lpfc: Define size of debugfs entry for xri rebalancing",
                            "    - allow finish_no_open(file, ERR_PTR(-E...))",
                            "    - usb: mon: Increase BUFF_MAX to 64 MiB to support multi-MB URBs",
                            "    - usb: xhci: plat: Facilitate using autosuspend for xhci plat devices",
                            "    - ipv6: np->rxpmtu race annotation",
                            "    - net: ethernet: microchip: sparx5: make it selectable for ARCH_LAN969X",
                            "    - iommu/vt-d: Replace snprintf with scnprintf in dmar_latency_snapshot()",
                            "    - wifi: ath10k: Fix connection after GTK rekeying",
                            "    - net: intel: fm10k: Fix parameter idx set but not used",
                            "    - r8169: set EEE speed down ratio to 1",
                            "    - sparc/module: Add R_SPARC_UA64 relocation handling",
                            "    - remoteproc: qcom: q6v5: Avoid handling handover twice",
                            "    - NFSv4: handle ERR_GRACE on delegation recalls",
                            "    - NFSv4.1: fix mount hang after CREATE_SESSION failure",
                            "    - scsi: libfc: Fix potential buffer overflow in fc_ct_ms_fill()",
                            "    - net: macb: avoid dealing with endianness in macb_set_hwaddr()",
                            "    - ALSA: usb-audio: add mono main switch to Presonus S1824c",
                            "    - exfat: limit log print for IO error",
                            "    - page_pool: Clamp pool size to max 16K pages",
                            "    - ACPICA: Update dsmethod.c to get rid of unused variable warning",
                            "    - RDMA/irdma: Fix SD index calculation",
                            "    - RDMA/irdma: Remove unused struct irdma_cq fields",
                            "    - RDMA/irdma: Set irdma_cq cq_num field during CQ create",
                            "    - RDMA/hns: Fix wrong WQE data when QP wraps around",
                            "    - btrfs: mark dirty extent range for out of bound prealloc extents",
                            "    - fs/hpfs: Fix error code for new_inode() failure in",
                            "      mkdir/create/mknod/symlink",
                            "    - um: Fix help message for ssl-non-raw",
                            "    - rtc: pcf2127: clear minute/second interrupt",
                            "    - ARM: at91: pm: save and restore ACR during PLL disable/enable",
                            "    - clk: at91: clk-master: Add check for divide by 3",
                            "    - clk: ti: am33xx: keep WKUP_DEBUGSS_CLKCTRL enabled",
                            "    - 9p: fix /sys/fs/9p/caches overwriting itself",
                            "    - cpufreq: tegra186: Initialize all cores to max frequencies",
                            "    - 9p: sysfs_init: don't hardcode error to ENOMEM",
                            "    - ACPI: property: Return present device nodes only on fwnode interface",
                            "    - ASoC: meson: aiu-encoder-i2s: fix bit clock polarity",
                            "    - ceph: add checking of wait_for_completion_killable() return value",
                            "    - ALSA: hda/realtek: Audio disappears on HP 15-fc000 after warm boot again",
                            "    - Revert \"wifi: ath10k: avoid unnecessary wait for service ready message\"",
                            "    - riscv: ptdump: use seq_puts() in pt_dump_seq_puts() macro",
                            "    - net: dsa: tag_brcm: legacy: fix untagged rx on unbridged ports for",
                            "      bcm63xx",
                            "    - selftests/net: fix out-of-order delivery of FIN in gro:tcp test",
                            "    - selftests/net: fix GRO coalesce test and add ext header coalesce tests",
                            "    - selftests/net: use destination options instead of hop-by-hop",
                            "    - netdevsim: add Makefile for selftests",
                            "    - selftests: netdevsim: Fix ethtool-coalesce.sh fail by installing",
                            "      ethtool-common.sh",
                            "    - net: vlan: sync VLAN features with lower device",
                            "    - net: dsa: b53: fix resetting speed and pause on forced link",
                            "    - net: dsa: b53: fix enabling ip multicast",
                            "    - net: dsa: b53: stop reading ARL entries if search is done",
                            "    - sctp: Hold RCU read lock while iterating over address list",
                            "    - sctp: Hold sock lock while iterating over address list",
                            "    - bnxt_en: PTP: Refactor PTP initialization functions",
                            "    - bnxt_en: Fix a possible memory leak in bnxt_ptp_init",
                            "    - tracing: Fix memory leaks in create_field_var()",
                            "    - rtc: rx8025: fix incorrect register reference",
                            "    - lib/crypto: curve25519-hacl64: Fix older clang KASAN workaround for GCC",
                            "    - extcon: adc-jack: Cleanup wakeup source only if it was enabled",
                            "    - selftests: netdevsim: set test timeout to 10 minutes",
                            "    - compiler_types: Move unused static inline functions warning to W=2",
                            "    - RISC-V: clear hot-unplugged cores from all task mm_cpumasks to avoid",
                            "      rfence errors",
                            "    - NFS4: Fix state renewals missing after boot",
                            "    - HID: quirks: avoid Cooler Master MM712 dongle wakeup bug",
                            "    - NFS: check if suid/sgid was cleared after a write as needed",
                            "    - ASoC: max98090/91: fixed max98091 ALSA widget powering up/down",
                            "    - net: fec: correct rx_bytes statistic for the case SHIFT16 is set",
                            "    - Bluetooth: 6lowpan: fix BDADDR_LE vs ADDR_LE_DEV address type confusion",
                            "    - Bluetooth: 6lowpan: Don't hold spin lock over sleeping functions",
                            "    - net/smc: fix mismatch between CLC header and proposal",
                            "    - net: mdio: fix resource leak in mdiobus_register_device()",
                            "    - wifi: mac80211: skip rate verification for not captured PSDUs",
                            "    - net: sched: act: move global static variable net_id to tc_action_ops",
                            "    - net: sched: act_connmark: get rid of tcf_connmark_walker and",
                            "      tcf_connmark_search",
                            "    - net/sched: act_connmark: transition to percpu stats and rcu",
                            "    - net_sched: act_connmark: use RCU in tcf_connmark_dump()",
                            "    - net/mlx5e: Fix maxrate wraparound in threshold between units",
                            "    - net/mlx5e: Fix wraparound in rate limiting for values above 255 Gbps",
                            "    - net_sched: limit try_bulk_dequeue_skb() batches",
                            "    - hsr: Fix supervision frame sending on HSRv0",
                            "    - Bluetooth: L2CAP: export l2cap_chan_hold for modules",
                            "    - acpi,srat: Fix incorrect device handle check for Generic Initiator",
                            "    - regulator: fixed: fix GPIO descriptor leak on register failure",
                            "    - ASoC: cs4271: Fix regulator leak on probe failure",
                            "    - NFSv4: Fix an incorrect parameter when calling nfs4_call_sync()",
                            "    - mptcp: pm: in-kernel: C-flag: handle late ADD_ADDR",
                            "    - lib/crypto: arm/curve25519: Disable on CPU_BIG_ENDIAN",
                            "    - mtd: onenand: Pass correct pointer to IRQ handler",
                            "    - HID: hid-ntrig: Prevent memory leak in ntrig_report_version()",
                            "    - gcov: add support for GCC 15",
                            "    - strparser: Fix signed/unsigned mismatch bug",
                            "    - ALSA: usb-audio: Fix missing unlock at error path of maxpacksize check",
                            "    - spi: Try to get ACPI GPIO IRQ earlier",
                            "    - EDAC/altera: Handle OCRAM ECC enable after warm reset",
                            "    - EDAC/altera: Use INTTEST register for Ethernet and USB SBE injection",
                            "    - net/sched: act_connmark: handle errno on tcf_idr_check_alloc",
                            "    - HID: quirks: work around VID/PID conflict for 0x4c4a/0x4155",
                            "    - exfat: check return value of sb_min_blocksize in exfat_read_boot_sector",
                            "    - MIPS: Malta: Fix !EVA SOC-it PCI MMIO",
                            "    - drm/tegra: dc: Fix reference leak in tegra_dc_couple()",
                            "    - mlxsw: spectrum: Fix memory leak in mlxsw_sp_flower_stats()",
                            "    - net: dsa: hellcreek: fix missing error handling in LED registration",
                            "    - platform/x86/intel/speed_select_if: Convert PCIBIOS_* return codes to",
                            "      errnos",
                            "    - kernel.h: Move ARRAY_SIZE() to a separate header",
                            "    - scsi: core: Fix a regression triggered by scsi_host_busy()",
                            "    - selftests: net: use BASH for bareudp testing",
                            "    - net: tls: Cancel RX async resync request on rcd_delta overflow",
                            "    - kconfig/mconf: Initialize the default locale at startup",
                            "    - kconfig/nconf: Initialize the default locale at startup",
                            "    - mm/mm_init: fix hash table order logging in alloc_large_system_hash()",
                            "    - ALSA: usb-audio: fix uac2 clock source at terminal parser",
                            "    - tracing/tools: Fix incorrcet short option in usage text for --threads",
                            "    - uio_hv_generic: Set event for all channels on the device",
                            "    - Makefile.compiler: replace cc-ifversion with compiler-specific macros",
                            "    - btrfs: add helper to truncate inode items when logging inode",
                            "    - mmc: sdhci-of-dwcmshc: Change DLL_STRBIN_TAPNUM_DEFAULT to 0x4",
                            "    - pmdomain: imx: Fix reference count leak in imx_gpc_remove",
                            "    - pmdomain: samsung: plug potential memleak during probe",
                            "    - selftests: mptcp: connect: fix fallback note due to OoO",
                            "    - mptcp: Disallow MPTCP subflows from sockmap",
                            "    - usb: deprecate the third argument of usb_maxpacket()",
                            "    - Input: remove third argument of usb_maxpacket()",
                            "    - ata: libata-scsi: Fix system suspend for a security locked drive",
                            "    - dt-bindings: pinctrl: toshiba,visconti: Fix number of items in groups",
                            "    - mptcp: fix ack generation for fallback msk",
                            "    - mptcp: fix premature close in case of fallback",
                            "    - mptcp: do not fallback when OoO is present",
                            "    - Revert \"block: Move checking GENHD_FL_NO_PART to bdev_add_partition()\"",
                            "    - Revert \"block: don't add or resize partition on the disk with",
                            "      GENHD_FL_NO_PART\"",
                            "    - Bluetooth: SMP: Fix not generating mackey and ltk when repairing",
                            "    - net: aquantia: Add missing descriptor cache invalidation on ATL2",
                            "    - net/mlx5e: Fix validation logic in rate limiting",
                            "    - net: dsa: sja1105: Convert to mdiobus_c45_read",
                            "    - net: dsa: sja1105: simplify static configuration reload",
                            "    - net: dsa: sja1105: fix SGMII linking at 10M or 100M but not passing",
                            "      traffic",
                            "    - mailbox: mailbox-test: Fix debugfs_create_dir error checking",
                            "    - spi: bcm63xx: fix premature CS deassertion on RX-only transactions",
                            "    - Revert \"perf/x86: Always store regs->ip in perf_callchain_kernel()\"",
                            "    - iio: imu: st_lsm6dsx: fix array size for st_lsm6dsx_settings fields",
                            "    - iio:common:ssp_sensors: Fix an error handling path ssp_probe()",
                            "    - MIPS: mm: Prevent a TLB shutdown on initial uniquification",
                            "    - can: sja1000: fix max irq loop handling",
                            "    - can: sun4i_can: sun4i_can_interrupt(): fix max irq loop handling",
                            "    - dm-verity: fix unreliable memory allocation",
                            "    - drivers/usb/dwc3: fix PCI parent check",
                            "    - thunderbolt: Add support for Intel Wildcat Lake",
                            "    - slimbus: ngd: Fix reference count leak in qcom_slim_ngd_notify_slaves",
                            "    - serial: amba-pl011: prefer dma_mapping_error() over explicit address",
                            "      checking",
                            "    - usb: cdns3: Fix double resource release in cdns3_pci_probe",
                            "    - USB: storage: Remove subclass and protocol overrides from Novatek quirk",
                            "    - xhci: dbgtty: Fix data corruption when transmitting data form DbC to",
                            "      host",
                            "    - USB: serial: ftdi_sio: add support for u-blox EVK-M101",
                            "    - USB: serial: option: add support for Rolling RW101R-GL",
                            "    - drm: sti: fix device leaks at component probe",
                            "    - staging: rtl8712: Remove driver using deprecated API wext",
                            "    - [Config] Remove config option for CONFIG_R8712U",
                            "    - selftests: mptcp: join: rm: set backup flag",
                            "    - mptcp: avoid unneeded subflow-level drops",
                            "    - usb: renesas_usbhs: Convert to platform remove callback returning void",
                            "    - usb: typec: ucsi: psy: Set max current to zero when disconnected",
                            "    - selftests/bpf: Don't rely on preserving volatile in PT_REGS macros in",
                            "      loop3",
                            "    - libbpf: Fix riscv register names",
                            "    - libbpf, riscv: Use a0 for RC register",
                            "    - libbpf: Fix invalid return address register in s390",
                            "    - Linux 5.15.197",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2024-47666",
                            "    - scsi: pm80xx: Set phy->enable_completion only when we",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68327",
                            "    - usb: renesas_usbhs: Fix synchronous external abort on unbind",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68295",
                            "    - smb: client: fix memory leak in cifs_construct_tcon()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68227",
                            "    - mptcp: Fix proto fallback detection with BPF",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68284",
                            "    - libceph: prevent potential out-of-bounds writes in",
                            "      handle_auth_session_key()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68285",
                            "    - libceph: fix potential use-after-free in have_mon_and_osd_map()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68286",
                            "    - drm/amd/display: Check NULL before accessing",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68287",
                            "    - usb: dwc3: Fix race condition between concurrent dwc3_remove_requests()",
                            "      call paths",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68331",
                            "    - usb: uas: fix urb unmapping issue when the uas device is remove during",
                            "      ongoing data transfer",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40345",
                            "    - usb: storage: sddr55: Reject out-of-bound new_pba",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68288",
                            "    - usb: storage: Fix memory leak in USB bulk transport",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68289",
                            "    - usb: gadget: f_eem: Fix memory leak in eem_unwrap",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68290",
                            "    - most: usb: fix double free on late probe failure",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68328",
                            "    - firmware: stratix10-svc: fix bug in saving controller data",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68339",
                            "    - atm/fore200e: Fix possible data race in fore200e_open()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68330",
                            "    - iio: accel: bmc150: Fix irq assumption regression",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68301",
                            "    - net: atlantic: fix fragment overflow handling in RX path",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68302",
                            "    - net: sxgbe: fix potential NULL dereference in sxgbe_rx()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68303",
                            "    - platform/x86: intel: punit_ipc: fix memory corruption",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68308",
                            "    - can: kvaser_usb: leaf: Fix potential infinite loop in command parsers",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40257",
                            "    - mptcp: fix a race in mptcp_pm_del_add_timer()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68217",
                            "    - Input: pegasus-notetaker - fix potential out-of-bounds access",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68204",
                            "    - pmdomain: arm: scmi: Fix genpd leak on provider registration failure",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68245",
                            "    - net: netpoll: fix incorrect refcount handling causing incorrect cleanup",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2024-37354",
                            "    - btrfs: fix crash on racing fsync and size-extending write into prealloc",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68220",
                            "    - net: ethernet: ti: netcp: Standardize knav_dma_open_channel to return",
                            "      NULL on error",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40272",
                            "    - mm/secretmem: fix use-after-free race in fault handler",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40248",
                            "    - vsock: Ignore signal/timeout on connect() if already established",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40252",
                            "    - net: qlogic/qede: fix potential out-of-bounds read in qede_tpa_cont()",
                            "      and qede_tpa_end()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40253",
                            "    - s390/ctcm: Fix double-kfree",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40254",
                            "    - net: openvswitch: remove never-working support for setting nsh fields",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40258",
                            "    - mptcp: fix race condition in mptcp_schedule_work()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68229",
                            "    - scsi: target: tcm_loop: Fix segfault in tcm_loop_tpg_address_show()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40259",
                            "    - scsi: sg: Do not sleep in atomic context",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40261",
                            "    - nvme: nvme-fc: Ensure ->ioerr_work is cancelled in nvme_fc_delete_ctrl()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40262",
                            "    - Input: imx_sc_key - fix memory corruption on unload",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40263",
                            "    - Input: cros_ec_keyb - fix an invalid memory access",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40264",
                            "    - be2net: pass wrb_params in case of OS2BMC",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68238",
                            "    - mtd: rawnand: cadence: fix DMA device NULL pointer dereference",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68734",
                            "    - isdn: mISDN: hfcsusb: fix memory leak in hfcsusb_probe()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40269",
                            "    - ALSA: usb-audio: Fix potential overflow of PCM transfer buffer",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40271",
                            "    - fs/proc: fix uaf in proc_readdir_de()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68241",
                            "    - ipv4: route: Prevent rt_bind_exception() from rebinding stale fnhe",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40273",
                            "    - NFSD: free copynotify stateid in nfs4_free_ol_stateid()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40040",
                            "    - mm/ksm: fix flag-dropping behavior in ksm_madvise",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68200",
                            "    - bpf: Add bpf_prog_run_data_pointers()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40275",
                            "    - ALSA: usb-audio: Fix NULL pointer dereference in",
                            "      snd_usb_mixer_controls_badd",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40277",
                            "    - drm/vmwgfx: Validate command header size against SVGA_CMD_MAX_DATASIZE",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40278",
                            "    - net: sched: act_ife: initialize struct tc_ife to fix KMSAN kernel-",
                            "      infoleak",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40279",
                            "    - net: sched: act_connmark: initialize struct tc_ife to fix kernel leak",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40280",
                            "    - tipc: Fix use-after-free in tipc_mon_reinit_self().",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40281",
                            "    - sctp: prevent possible shift-out-of-bounds in sctp_transport_update_rto",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40282",
                            "    - Bluetooth: 6lowpan: reset link-local header on ipv6 recv path",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40283",
                            "    - Bluetooth: btusb: reorder cleanup in btusb_disconnect to avoid UAF",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68244",
                            "    - drm/i915: Avoid lock inversion when pinning to GGTT on CHV/BXT+VTD",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68192",
                            "    - net: usb: qmi_wwan: initialize MAC header offset in qmimux_rx_fixup",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40331",
                            "    - sctp: Prevent TOCTOU out-of-bounds write",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40304",
                            "    - fbdev: Add bounds checking in bit_putcs to fix vmalloc-out-of-bounds",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40306",
                            "    - orangefs: fix xattr related buffer overflow...",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40308",
                            "    - Bluetooth: bcsp: receive data only if registered",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40309",
                            "    - Bluetooth: SCO: Fix UAF on sco_conn_free",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40361",
                            "    - fs: ext4: change GFP_KERNEL to GFP_NOFS to avoid deadlock",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68185",
                            "    - nfs4_setup_readdir(): insufficient locking for ->d_parent->d_inode",
                            "      dereferencing",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68176",
                            "    - PCI: cadence: Check for the existence of cdns_pcie::ops before using it",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68168",
                            "    - jfs: fix uninitialized waitqueue in transaction manager",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40312",
                            "    - jfs: Verify inode mode when loading from disk",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68321",
                            "    - page_pool: always add GFP_NOWARN for ATOMIC allocations",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68191",
                            "    - udp_tunnel: use netdev_warn() instead of netdev_WARN()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40313",
                            "    - ntfs3: pretend $Extend records as regular files",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40314",
                            "    - usb: cdns3: gadget: Use-after-free during failed initialization and exit",
                            "      of cdnsp gadget",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68194",
                            "    - media: imon: make send_packet() more robust",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40363",
                            "    - net: ipv6: fix field-spanning memcpy warning in AH output",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40342",
                            "    - nvme-fc: use lock accessing port_state and rport state",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40343",
                            "    - nvmet-fc: avoid scheduling association deletion twice",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68177",
                            "    - cpufreq/longhaul: handle NULL policy in longhaul_exit",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40360",
                            "    - drm/sysfb: Do not dereference NULL pointer in plane reset",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40315",
                            "    - usb: gadget: f_fs: Fix epfile null pointer access after ep enable.",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40317",
                            "    - regmap: slimbus: fix bus_context pointer in regmap init calls",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-68312",
                            "    - usbnet: Prevents free active kevent",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40319",
                            "    - bpf: Sync pending IRQ work before freeing ring buffer",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40321",
                            "    - wifi: brcmfmac: fix crash while sending Action Frames in standalone AP",
                            "      Mode",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40322",
                            "    - fbdev: bitblit: bound-check glyph index in bit_putcs*",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40211",
                            "    - ACPI: video: Fix use-after-free in acpi_video_switch_brightness()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40324",
                            "    - NFSD: Fix crash in nfsd4_read_release()",
                            "",
                            "  * Jammy update: v5.15.197 upstream stable release (LP: #2138662) //",
                            "    CVE-2025-40083",
                            "    - net/sched: sch_qfq: Fix null-deref in agg_dequeue",
                            "",
                            "  * CVE-2024-41014",
                            "    - xfs: add bounds checking to xlog_recover_process_data",
                            "",
                            "  * CVE-2022-49267",
                            "    - mmc: core: use sysfs_emit() instead of sprintf()",
                            "",
                            "  * CVE-2025-21780",
                            "    - drm/amdgpu: avoid buffer overflow attach in smu_sys_set_pp_table()",
                            ""
                        ],
                        "package": "linux",
                        "version": "5.15.0-172.182",
                        "urgency": "medium",
                        "distributions": "jammy",
                        "launchpad_bugs_fixed": [
                            2141059,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2139704,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662,
                            2138662
                        ],
                        "author": "Edoardo Canepa <edoardo.canepa@canonical.com>",
                        "date": "Sat, 07 Feb 2026 09:17:42 +0100"
                    }
                ],
                "notes": "linux-modules-5.15.0-173-generic version '5.15.0-173.183' (source package linux version '5.15.0-173.183') was added. linux-modules-5.15.0-173-generic version '5.15.0-173.183' has the same source package name, linux, as removed package linux-headers-5.15.0-171. As such we can use the source package version of the removed package, '5.15.0-171.181', as the starting point in our changelog diff. Kernel packages are an example of where the binary package name changes for the same source package. Using the removed package source package version as our starting point means we can still get meaningful changelog diffs even for what appears to be a new package.",
                "is_version_downgrade": false
            }
        ],
        "snap": []
    },
    "removed": {
        "deb": [
            {
                "name": "linux-headers-5.15.0-171",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.15.0-171.181",
                    "version": "5.15.0-171.181"
                },
                "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.15.0-171-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.15.0-171.181",
                    "version": "5.15.0-171.181"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-image-5.15.0-171-generic",
                "from_version": {
                    "source_package_name": "linux-signed",
                    "source_package_version": "5.15.0-171.181",
                    "version": "5.15.0-171.181"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            },
            {
                "name": "linux-modules-5.15.0-171-generic",
                "from_version": {
                    "source_package_name": "linux",
                    "source_package_version": "5.15.0-171.181",
                    "version": "5.15.0-171.181"
                },
                "to_version": {
                    "source_package_name": null,
                    "source_package_version": null,
                    "version": null
                },
                "cves": [],
                "launchpad_bugs_fixed": [],
                "changes": [],
                "notes": null,
                "is_version_downgrade": false
            }
        ],
        "snap": []
    },
    "notes": "Changelog diff for Ubuntu 22.04 jammy image from release image serial 20260227 to 20260320",
    "from_series": "jammy",
    "to_series": "jammy",
    "from_serial": "20260227",
    "to_serial": "20260320",
    "from_manifest_filename": "release_manifest.previous",
    "to_manifest_filename": "manifest.current"
}